【发布时间】:2020-11-22 19:23:11
【问题描述】:
我在将字符串发布到 Web api 时收到来自 HttpClient 的错误请求错误。我知道如果我在 web api 中有一个对象作为参数,这将起作用,但我想要一个可以接受字符串并返回字符串的方法。这个 api 在 POSTMAN 中工作。这里是api和HttpClient的代码L
WebAPI 代码:
[HttpPost("TestMethod")]
public ActionResult<string> TestMethod([FromBody] string testString)
{
var s = "Hello: " + testString;
return Content(s.ToString());
}
Http 客户端代码:
string apiResponse="";
string API_URL = configuration["API_URL"].ToString() + "mauser/TestMethod";
var postParameters = new { testString = "Bob" };
var jsonString = JsonConvert.SerializeObject(postParameters);
var stringContent = new StringContent(jsonString, Encoding.UTF8, "application/json");
using (var httpClient = new HttpClient())
{
using (var response = await httpClient.PostAsync(API_URL, stringContent))
{
if (response.IsSuccessStatusCode)
{
apiResponse = await response.Content.ReadAsStringAsync();
}
else
{
//Handle error
}
}
}
return apiResponse;
在 Visual Studio 中调试期间,它在 var response = await httpClient.PostAsync(API_URL, stringContent) 的客户端代码中失败
我收到的错误:
{StatusCode: 400, ReasonPhrase: 'Bad Request', Version: 1.1, Content: System.Net.Http.HttpConnectionResponseContent, Headers:
{
Transfer-Encoding: chunked
Server: Kestrel
X-Powered-By: ASP.NET
Date: Mon, 23 Nov 2020 01:36:44 GMT
Content-Type: application/problem+json; charset=utf-8
}}
【问题讨论】:
标签: c# asp.net-core asp.net-web-api httpclient asp.net-core-3.1