HttpClient.GetAsync, недопустимое исключение URI

Приведенный ниже код не работает. Я получаю следующее исключение в GetAsync:

Неверный URI: не удалось определить формат URI.

Однако, если я прокомментирую apiClient.BaseAddress и укажите полный URI в apiClient.GetAsync тогда работает нормально!

Может ли кто-нибудь объяснить причину?

Среда разработки: VS2012,.NET 4.5, C#, ASP.NET WebForms

Код

private async Task WebAPICall()
{
    using (var apiClient = new HttpClient())
    {
        apiClient.BaseAddress = new Uri("http://localhost:9000/");
        apiClient.DefaultRequestHeaders.Accept.Clear();
        apiClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
        apiClient.Timeout = new TimeSpan(0, 0, 30);

        try
        {
            HttpResponseMessage apiResponseMsg = await apiClient.GetAsync(new Uri("api/products/" + txtProductID.Text.Trim()));
            string strResponse = await apiResponseMsg.Content.ReadAsStringAsync();
            Response.Write(strResponse);
        }
        catch (Exception ex)
        {
            Response.Write(ex.Message);
        }

    } //using (var apiClient = new HttpClient())
} //private async Task WebAPICall()

1 ответ

Нашел проблему с помощью другого поста на Stackru. Спасибо @Alexei за URL.

Изменена строка URI, и она работает нормально.

HttpResponseMessage apiResponseMsg = await apiClient.GetAsync("api/products/" + txtProductID.Text.Trim());
Другие вопросы по тегам