【问题标题】:Easily call an Rest api with RestSharp使用 RestSharp 轻松调用 Rest api
【发布时间】:2015-04-10 20:53:25
【问题描述】:

我有一个 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 数据包中给出“名称”?

【问题讨论】:

  • 您可以先检查API是否正常工作,以测试您可以使用chrome插件postman检查它,当您可以发送POST请求并查看响应时。
  • 使用 PostMan 就可以了
  • 来自postman 您是否在请求中传递了标头?你能通过删除标题来检查吗?
  • 当我在 PostMan 中删除标头时,api 返回错误请求

标签: c# rest restsharp


【解决方案1】:

你可以用这个:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-14
    • 2013-07-13
    • 2014-10-20
    • 2013-03-20
    • 2020-03-01
    相关资源
    最近更新 更多