Попытка преобразовать часть моей программы в асинхронный вызов HTTP-клиента.
Взял часть кода (которая ниже) для тестирования.
В основном асинхронная кнопка с неблокирующими (должно быть, насколько мне известно) SendAsync (). Это не должно блокировать поток пользовательского интерфейса, я прав? Это все еще блокирует это по причине, которую я не могу видеть в настоящее время.
Я провел последние 2 дня, пытаясь понять, что не так. Я реализовал неблокирующие функции записи файлов и записи электронной почты, и они работают правильно.
Может кто-нибудь указать, что я делаю не так, пожалуйста?
private async void button2_Click(object sender, EventArgs e)
{
NetworkCredential differentCredToPass = new NetworkCredential("user", "*****", "domain");
WebProxy wcProxy = new WebProxy("1.1.1.1", 8080);
wcProxy.UseDefaultCredentials = false;
wcProxy.Credentials = differentCredToPass;
var httpHandler = new HttpClientHandler();
httpHandler.UseProxy = true;
httpHandler.UseDefaultCredentials = false;
httpHandler.Proxy = wcProxy;
using(HttpClient httpClient = new HttpClient(httpHandler) )
{
try
{
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "http://cisco.Com");
HttpResponseMessage response = await httpClient.SendAsync(request);
textBox1.AppendText(response.StatusCode.ToString() + Environment.NewLine);
}
catch (Exception ex)
{
textBox1.AppendText(ex.Message.ToString() + Environment.NewLine);
throw;
}
}
}