Ошибка таймаута HttpClient при вызове PostAsJsonAsync - PullRequest
1 голос
/ 21 июня 2019

У меня проблема с получением ответа от метода HttpClient PostAsJsonAsync. Я передаю данные StringContent в запрос POST, но он возвращает код состояния Forbidden (403).

Когда я попытался добавить заголовок запроса по умолчанию (закомментированная строка кода), ошибка изменилась, и она вернула проблему тайм-аута:

{System.Net.Http.WinHttpException (0x80072EE2): тайм-аут операции в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () в System.Threading.Tasks.RendezvousAwaitable`1.GetResult () at System.Net.Http.WinHttpHandler.d__105.MoveNext ()}

var content = new StringContent(JsonConvert.SerializeObject(contentBody), Encoding.UTF8, "application/json");

var client = new HttpClient();
client.BaseAddress = new Uri("https://www.example.com");
//client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

using (var httpResponse = await client.PostAsJsonAsync("api/details", content))
{
    if (httpResponse.Content != null)
    {
        var responseContent = await httpResponse.Content.ReadAsStringAsync();
    }
}

Когда я попробовал это в Postman, он вернул данные JSON. Почему это не работает в коде? Есть ли что-то, что блокирует мое соединение?

1 Ответ

2 голосов
/ 21 июня 2019

К свойству BaseAddress необходимо добавить косую черту:

client.BaseAddress = new Uri("https://www.example.com/");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...