У меня есть два приложения ASP.NET Core 2.1, и я пытаюсь сделать простой POST
вызов из одного приложения в другое, используя HttpClient
.
По какой-то причине, когда я использую [FromBody]
чтобы получить простой текст, который я пытаюсь получить, я получаю ошибку BadRequest
.
Вот мой код отправителя.Во-первых, это то, что в моем методе ConfigureServices
.Я использую новую функцию HttpClientFactory
в ASP.NET Core 2.1.Я также создал клиентский класс с именем myApiCallerClient
, который обрабатывает мои вызовы API:
services.AddHttpClient("myNamedClient", client =>
{
client.BaseAddress = new Uri("http://localhost:50625/api/");
client.DefaultRequestHeaders.Clear();
client.DefaultRequestHeaders.Add("Accept", "application/json");
});
services.AddScoped(x => {
var httpClientFactory = x.GetRequiredService<System.Net.Http.IHttpClientFactory>();
var myApiCallerClient = httpClientFactory.CreateClient("myNamedClient");
return new Clients.ApiCaller.ApiCallerClient(myApiCallerClient);
});
Вот код в myApiCallerClient:
public async Task SayHello()
{
var response = await _httpClient.PostAsync("test", new StringContent("Saying hello!", System.Text.Encoding.UTF8, "text/plain"));
}
А вот мой код на принимающей стороне, которыйPOST()
метод API в TestController
:
[HttpPost]
public async Task Post([FromBody]string input)
{
// Some logic
}
Мой вызов не срабатывает при использовании этого метода, если я использую [FromBody]
и получаю ошибку BadRequest
на отправителе.Если я использую [FromHeader]
, мой запрос соответствует этому методу API, но я получаю значение null
.
Что я здесь не так делаю?