c# - Windows Phone 8.1/Windows 8.1如何设置http客户端请求操作超时

标签 c# windows-phone-8.1 windows-8.1 httpclient win-universal-app

如何将 Timeout 属性设置为 Windows.Web.Http.HttpClient 操作。我使用的代码示例如下。

public HttpClient httpClient;
public CancellationTokenSource cts;

public void SendRequest(addressUri,postrequestbody)
{
    HttpHelper.CreateHttpClient(ref httpClient);
    cts = new CancellationTokenSource();
    HttpRequestMessage msg = 
        new HttpRequestMessage(new HttpMethod("POST"), 
                               new Uri(addressUri));
    msg.Content = new HttpStringContent(postrequestbody);
    msg.Content.Headers.ContentType = 
        new HttpMediaTypeHeaderValue("application/json");
    HttpResponseMessage response = 
        await httpClient.SendRequestAsync(msg).AsTask();

    if (response.StatusCode == HttpStatusCode.Ok)
    {
    }
}

最佳答案

使用CancellationToken:

try 
{
    CancellationTokenSource cts = new CancellationTokenSource(2000); // 2 seconds
    HttpClient client = new HttpClient();
    HttpResponseMessage response = await
        client.SendRequestAsync(request).AsTask(cts.Token);
}
catch (TaskCanceledException ex)
{
    // Catch operation aborted ...
}

关于c# - Windows Phone 8.1/Windows 8.1如何设置http客户端请求操作超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28060575/

相关文章:

c# - 是否可以在 C#/LINQ 中扩展查询关键字?

webview - 从 Windows 8.1 Store HTML5 应用程序中的 webview 检索数据

c# - 以编程方式运行 MSBuild

c# - 在 LongListSelector 中使用控件

c# - 使用 Caliburn.Micro 在 Windows Phone 上进行 Facebook 身份验证回调

c# - 从 ListView 中的字节绑定(bind)图像(Windows Phone 8.1)

node.js - 在Windows 8.1上安装node.js时出错

c# - 未检测到已安装的组件。元素已经是另一个元素的子元素

c# - 设置 WinForms.Form 所有者时出现跨线程异常 - 如何正确执行?

c# - 字节的二进制读取只返回一个值。 C#