使用HttpClient发布JSON数据时出现错误400

时间:2019-01-30 11:37:55

标签: c# json post dotnet-httpclient

我正在尝试将JSON格式的数据发布到API:

我的JSON数据是:

{
    "itemData": {
                 "Name": "test",
                 "Priority": "High",
                 "SpecificContent": {},
                 "DeferDate": "2019-01-22T11:21:09.431Z",
                 "DueDate": "2019-01-22T11:21:09.432Z",
                 "Reference": "toto"
                }
           }

我的代码:

using (var client = new HttpClient())
{
    client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", mytoken);
    var res = client.PostAsync(MyURL,
      new StringContent(JsonConvert.SerializeObject(new { ItemData = new { Name = "toto", Priority = "High", SpecificContent = new { } } }),
        Encoding.UTF8, "application/json"));

    try
    {
        res.Result.EnsureSuccessStatusCode();
        MessageBox.Show(res.Result.EnsureSuccessStatusCode().ToString());
    }
    catch (Exception e)
    {
        MessageBox.Show(e.ToString());
    }
}

我有一个错误:

  

状态码:400错误的请求

我的代码怎么了?

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

错误400表示请求错误。因此,您要发布到的服务器期望未发送的内容。使用邮递员之类的HTTP伪造工具进行查找,以编写所需的HTTP请求。了解所有详细信息后,将其传输到C#

答案 1 :(得分:0)

早上!

400错误的请求-

这只是意味着您发送的请求中有不适合的内容。

https://www.ionos.com/digitalguide/hosting/technical-matters/http-400-bad-request-finding-the-causes/

我的第一步检查通常是确保您发送的对象与API端点期望的数据完全相同:也许您可以向我们提供您正在调用的API的一些详细信息?