api - Rest API 调用,使用 RestSharp 调用 ASP.NET Web API

标签 api rest web asp.net-web-api restsharp

我目前正在测试使用 ASP.NET Web API 编写 RESTful API。我在客户端上使用 RestSharp 来模拟不同的调用。

我想提交一个应用程序ID查询字符串,正文应该是“Log”类型的集合。每次,服务器收到的body中发布的应用程序ID始终为NULL。

服务器上的代码:

 public class LogsController : ApiController
{
    public HttpStatusCode Post(Guid ID, [FromBody] List<Log> logs)
    {
        if (logs != null)
            return HttpStatusCode.OK;
        else
            return HttpStatusCode.PreconditionFailed;
    }
}

public class Log
{
    public Guid ErrorId { get; set; }
}

客户端代码:

    static void Main(string[] args)
    {
        var client = new RestClient("http://localhost:36146/api");

        var json = JsonConvert.SerializeObject(new List<Log>()
            {
                new Log { ErrorId = Guid.NewGuid()}
            });

        var request = new RestRequest("Logs", Method.POST);

        request.RequestFormat = DataFormat.Json;
        request.AddParameter("ID", Guid.NewGuid(), ParameterType.QueryString);
        request.AddHeader("Accept", "application/json");
        request.AddHeader("Content-Type", "application/json; charset=utf-8");
        request.AddBody(json);

        IRestResponse response = client.Execute(request);
        Console.WriteLine(response.Content);
        Console.Read();
    }

    public class Log
    {
        public Guid ErrorId { get; set; }
    }

我以为我已经成功了,但是无论我现在做什么,服务器上的“logs”参数始终为 NULL。

最佳答案

我想我已经找到问题了。

RestSharp 在填充请求正文时隐式使用 JsonSerializer。由于我也被称为序列化器,我认为它导致了格式问题。

我已经删除了对序列化器的调用,现在我收到了服务器返回的 200。

快乐的日子。

关于api - Rest API 调用,使用 RestSharp 调用 ASP.NET Web API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21771444/

相关文章:

api - 我是否需要带有 Azure API 服务的 Azure 流量管理器?

iis - 网站A 'redirect' 到网站B的子域,内容为网站A

api - Binance的dapi(硬币 future api)中使用的符号是什么?

node.js - 如何使用 REST API 更新 Azure 媒体服务中的现有媒体文件?

java 。根据网络应用程序中的用户时区创建日期

c# - 将 wif 与 web api 一起使用

java - Resteasy 下载的损坏的 ZIP 文件

java - 如何使用 java 5 从 azure Vault 检索 secret ?

php - 为什么我无法对 API 的响应进行 json_decode?

api - 为什么 Instagram/用户/媒体/最近的 API 调用中缺少某些用户字段?