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());