당신은 시간 제한이있는 CancellationTokenSource를 사용할 수있는 시간 제한 옵션을 구현할 수 있습니다.
HttpClient client = new HttpClient();
var cancellationTokenSource = new CancellationTokenSource(2000); //timeout
try
{
var response = await client.GetAsync("https://test.example.com", cancellationTokenSource.Token);
}
catch (TaskCanceledException ex)
{
}
편집 : 당신이 AsTask() 확장 메서드를 사용해야합니다 Windows.Web.Http.HttpClient와 :
HttpClient client = new HttpClient();
System.Threading.CancellationTokenSource source = new System.Threading.CancellationTokenSource(2000);
try
{
client.GetAsync(new Uri("http://example.com")).AsTask(source.Token);
}
catch(TaskCanceledException ex)
{
}
내 실수는, 위의 샘플은 System.Net.Http.HttpClient를 사용하여 작성 . Windows.Web.HttpClient를 고수해야하는 경우 http://msdn.microsoft.com/en-us/library/windows/apps/windows.web.http.filters.aspx –
을 참조하십시오. "Windows.Web.Http.HttpClient"CancellationTokenSource에서 동일한 구현을 사용할 수 있습니다. –
정말요? 원인 GetAsync는 HttpCompletionOption을 사용합니다. 나는 토큰을 통과 할 수 없다. – Naning