我在asp.net核心webapi中有这个Post请求处理程序
[HttpPost()]
public IActionResult Post([FromBody]string value)
{
if (value == null)
{
return new HttpStatusCodeResult(400);
}
else
{
return new HttpStatusCodeResult(200);
}
}
我正在尝试使用其他应用中的HttpClient
发布字符串
using(var client = new HttpClient())
{
var content = new StringContent("test test");
var response = client.PostAsync("http://localhost:57316/api/values", content).Result;
var responseString = response.Content.ReadAsStringAsync().Result;
Console.WriteLine(responseString);
}
当我调试上面的处理程序时收到请求,但是值总是为null,我希望它是"test test"
,我做错了吗?
答案 0 :(得分:1)
由于您未在请求中设置明确的Content-Type
,因此可能的ASP.NET Web API将其解释为JSON,但是" test test
" (单独,没有引号)是无效的JSON,它将失败。
尝试以下方法之一:
Content-Type
标题设置为" text / plain"。new StringContent("\"test test\"");