Windows.Web.Http.HttpClient Timeout Option

拜拜、爱过 提交于 2019-12-19 19:50:02

问题


Due to SSL certificate issue we are using "Windows.Web.Http.HttpClient" API in my app service layer.

I referred below sample for my project.

http://code.msdn.microsoft.com/windowsapps/HttpClient-sample-55700664

How can we implement the timeout option in "Windows.Web.Http.HttpClient" API


回答1:


You can use a CancellationTokenSource with a timeout.

        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)
        {

        }

Edit : With Windows.Web.Http.HttpClient you should use the AsTask() extension method :

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)
{

}


来源:https://stackoverflow.com/questions/19535004/windows-web-http-httpclient-timeout-option

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!