У меня есть контроллер веб-API с методом
[HttpPost]
[Authorize]
[Route("[action]")]
public async Task<IActionResult> Authenticate(HttpRequestMessage msg)
{
//msg.Method is always GET
// msg.Content is null
}
Я вызываю его из настольного приложения так:
HttpClient client = new HttpClient(new HttpClientHandler(){AllowAutoRedirect = false});
foreach (var header in headers)
{
client.DefaultRequestHeaders.Add(header.Key, header.Value);
}
var content = new StringContent(jsonContent, Encoding.UTF8, "application/json");
await client.PostAsync(requestUrl, content);
Но в методе веб-API свойство msg.Method
всегда GET и msg.Content имеет значение null
Это своего рода перенаправление или другое намеренное поведение, при котором каждый запрос превращается в GET?
Я пытался изменить его на
[Authorize]
[HttpPost]
[Route("[action]")]
public async Task<IActionResult> C2dSend([FromBody]string request)
{
return Ok();
}
но получил 'BadRequest' после вызова.
Единственное, что работает, это заменить строку на динамическую:
[Authorize]
[HttpPost]
[Route("[action]")]
public async Task<IActionResult> C2dSend([FromBody]dynamic request)
{
return Ok();
}