У меня странная проблема, которую я не знаю, почему она дает проблемы:
На клиенте у меня есть этот код:
HttpResponseMessage response = await _httpClient.PostAsync("http://127.0.0.1:5544/api/Blablabla", new StringContent("test"));
На сервере я реализовал пользовательский InputFormatter, который имеет
public async override Task<InputFormatterResult> ReadRequestBodyAsync(InputFormatterContext context)
{
var request = context.HttpContext.Request;
try
{
using (var reader = new StreamReader(request.Body))
{
var content = await reader.ReadToEndAsync().ConfigureAwait(false);
return await InputFormatterResult.SuccessAsync(content).ConfigureAwait(false);
}
}
catch (Exception e)
{
return await InputFormatterResult.FailureAsync();
}
}
Если я попробую это, сработает исключение catch сервера, что даст мне исключение:
Существующее соединение было принудительно закрыто удаленным хостом
Но .....
Если в клиенте я выполняю синхронизацию PostAsync следующим образом:
HttpResponseMessage response = _httpClient.PostAsync("http://127.0.0.1:5544/api/Blablabla", new StringContent("test")).Result;
Все работает нормально.
В чем проблема ???