Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在windows phone 8.1/windows 8.1中设置http客户端请求操作的超时_C#_Windows Phone 8.1_Windows 8.1_Httpclient_Win Universal App - Fatal编程技术网

C# 如何在windows phone 8.1/windows 8.1中设置http客户端请求操作的超时

C# 如何在windows phone 8.1/windows 8.1中设置http客户端请求操作的超时,c#,windows-phone-8.1,windows-8.1,httpclient,win-universal-app,C#,Windows Phone 8.1,Windows 8.1,Httpclient,Win Universal App,如何将超时属性设置为Windows.Web.Http.HttpClient操作。下面是我使用的代码示例 public HttpClient httpClient; public CancellationTokenSource cts; public void SendRequest(addressUri,postrequestbody) { HttpHelper.CreateHttpClient(ref httpClient); cts = new CancellationTo

如何将超时属性设置为
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)
    {
    }
}

使用
取消令牌

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 ...
}

您是否尝试过超时>60秒?(你的例子用了2秒)我试着这样设置10分钟。。。。。var response=wait-httpClient.PutAsync(操作、有效负载、新的CancellationTokenSource(600000).Token);但这返回404,60秒后仍然找不到。@iupchris10我知道这已经晚了2年,但60秒不到10分钟。如果您有响应代码(即服务器已响应),则您的请求尚未超时。我期待这种行为,因为这是正确的行为。如果没有响应/响应时间过长,上述代码将在10分钟后取消您的请求。你的例子不是这样的。我知道这是3年后的事了,但它是60000而不是60000,也就是10分钟