500 - C# .NET Framework REST WebService 中的内部服务器错误,但由 Postman 运行

问题描述 投票:0回答:1

当我调用 REST API 时,它会生成 500 - 内部服务器错误,但当我使用 Postman 调用它时,它会起作用。 下面是我的代码:

using (HttpClient httpClient = new HttpClient())
{              
    httpClient.BaseAddress = new Uri("...");

    httpClient.DefaultRequestHeaders.Accept
        .Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));

    HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, httpClient.BaseAddress);
    request.Content = 
        new StringContent(JsonConvert.SerializeObject(objLogin), Encoding.UTF8, "application/json");
        
    //here get 500 - Internal Server Error.
    HttpResponseMessage response = httpClient.SendAsync(request).Result;

    //...
}

我已经尝试过:

  • 使用其他类调用API。
  • 更改我的 .NET Framework(我使用的是 4.7.2)。
  • 寻找另一种调用API的方式。

但我总是得到相同的结果。

c# rest webservice-client internal-server-error http-status-code-500
1个回答
0
投票

我也遇到了同样的问题,这篇文章对我帮助很大: https://eliasdc.dev/index.php/2023/12/04/14/

总结:

  • 在提出请求之前尝试进行设置:

httpClient.DefaultRequestHeaders.ExpectContinue = false

  • 如果不起作用,请尝试(不推荐)

request.Version = HttpVersion.Version10;

还没有工作吗? 您可以将您的标头与邮递员标头进行比较。在同一篇文章(https://eliasdc.dev/index.php/2023/12/04/14/)中,作者解释了如何做到这一点,并展示了如何使用此代码来帮助您: https://github.com/eliasedc/ApiGetHeaders

希望对你有帮助

© www.soinside.com 2019 - 2024. All rights reserved.