2012-10-01 55 views
3

我创建了一个HttpClient来等待服务。这在asyncron函数的一个线程中运行。问题是,服务在2-3分钟后发送响应。目前这些任务将被取消,因为我从服务器获得了成功的响应。是否有可能等待2到3分钟的响应?在下面我的代码:HttpClient /在地铁应用程序

private async Task<string> loginService() 
    { 
     try 
     { 
      string post_data = "user_data"; 

      string uri = "http://myserver.de"; 

      HttpClient httpClient = new HttpClient(); 
      httpClient.MaxResponseContentBufferSize = 256000; 
      httpClient.DefaultRequestHeaders.Add("user-agent", "Mozilla/5.0 (compatible; MSIE 10.0; WIndows NT 6.2; WOW64; Trident/6.0)"); 

      HttpContent content = new FormUrlEncodedContent(new[] 
      { 
       new KeyValuePair<string, string>("data", post_data) 
      }); 

      HttpResponseMessage response = await httpClient.PostAsync(new Uri(uri), content); 
      response.EnsureSuccessStatusCode(); 
      string responseBodyAsText = await response.Content.ReadAsStringAsync(); 
      return responseBodyAsText; 
     } 
     catch 
     { 
      return "Error..."; 
     } 
    } 

哪种方法是最好的,我可以用它来获得3分钟后的响应?

回答

1

超时的默认值是100秒。您可以使用Timeout属性将HTTPClient上的timeout设置为3分钟(或更高)。

httpClient.Timeout = new TimeSpan(0,3,0); 
相关问题