2015-01-17 5 views
0

У меня есть следующий код:HttpClient, поймать не может подключиться

 ProgressMessageHandler progress = new ProgressMessageHandler(); 
     progress.HttpSendProgress += new EventHandler<HttpProgressEventArgs>(HttpSendProgress); 
     HttpRequestMessage message = new HttpRequestMessage(); 
     message.Method = HttpMethod.Post; 
     message.Content = content; 
     message.RequestUri = new Uri("http://myaddress"); 
     var client = HttpClientFactory.Create(progress); 
     sending = client.SendAsync(message); 


    private void HttpSendProgress(object sender, HttpProgressEventArgs e) 
    { 
     //.... 
    } 

Я хочу, чтобы поймать ситуацию, когда «myaddress» не доступен. Метод HttpSendProgress вызывается, когда прогресс активен, поэтому я не могу проверить этот метод. Любой способ проверить наличие «myaddress». У меня есть идея запустить еще один поток, чтобы проверить, когда HttpSendProgress вызывается в прошлый раз. Но может быть, есть стандартный метод?

ответ

0

Я не думаю, что вы можете проверить, является ли адрес рабочим адресом в событии прогресса. Вам нужно проверить статус после того, как ответ вернется.

if (response.IsSuccessStatusCode) 
    { 
     Console.WriteLine(response.StatusCode.ToString()); 
    } 

How to determine a 404 response status when using the HttpClient.GetAsync()

+0

ответ не возвращаются. Он ждет неограниченное время :( –

+0

Вы установили 'timeout'?' Client.Timeout = Timespan.FromSeconds (30) '. Это должно возвратиться с ответом за 30 секунд – Kallol

 Смежные вопросы

  • Нет связанных вопросов^_^