2012-10-01 3 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); 
관련 문제