使用 RestSharp 轻松调用 Rest api

Easily call an Rest api with RestSharp

我有一个 RestApi,我想将它与我的 c# mvc 客户端一起使用。

我需要发送一些由 c# 模型表示的数据包。

我用代码尝试 RestSharp:

//model = UserModel
var client = new RestClient(apiUrl);
var request = new RestRequest("/user/register", Method.POST);
request.RequestFormat = DataFormat.Json;
request.AddParameter("user", model);
request.AddHeader("Content-Type", "application/json; charset=UTF-8");        
var response = client.Execute(request);

在 response.StatusCode 我有 BadRequest System.Net.HttpStatusCode

如何调试我的请求?我尝试使用 wireshark 查看请求,但我没有看到任何 json 数据包。

编辑:

当我使用 AddJsonBody 而不是 AddParameter 时它可以工作,但是我的 json 数据包没有按预期格式化。

我要

 {
   "user":
       {"Username": "Test", 
        "Password": "password"
       }
 }

使用 AddJsonBody 我有:

 {
       {
        "Username": "Test", 
        "Password": "password"
       }
 }

如何使用 RestSharp 在 json 数据包中提供 "name"?

你可以使用这个:

request.AddJsonBody(new { user = model });

这将创建一个匿名类型,其中 属性 "user" 包含您的模型。然后 json 序列化程序应该生成预期的字符串。