C# 如何在windows phone 8中设置RestClient的超时?
我正在使用RestSharp API调用一个Web服务。但我面临一个问题,即当服务器花费的时间超过RestClient的默认超时(即100秒)时,我总是得到StatusCode=NotFound。我还尝试硬编码timeout和ReadWriteTimeout参数值,但没有帮助。有人能建议一下这里能做些什么吗 我的代码如下C# 如何在windows phone 8中设置RestClient的超时?,c#,windows-phone-8,restsharp,C#,Windows Phone 8,Restsharp,我正在使用RestSharp API调用一个Web服务。但我面临一个问题,即当服务器花费的时间超过RestClient的默认超时(即100秒)时,我总是得到StatusCode=NotFound。我还尝试硬编码timeout和ReadWriteTimeout参数值,但没有帮助。有人能建议一下这里能做些什么吗 我的代码如下 public async Task<WebDownloadResult> SyncMobileData(string encryptedstring) {
public async Task<WebDownloadResult> SyncMobileData(string encryptedstring)
{
WebDownloadResult response = new WebDownloadResult();
var client = new RestClient(BaseUrl + Constants.WEB_SERVICE_NAME);
client.Timeout = CONN_TIMEOUT;
client.ReadWriteTimeout = CONN_TIMEOUT;
var request = new RestRequest(Method.POST);
byte[] encryptedbytes=System.Text.Encoding.UTF8.GetBytes(encryptedstring);
request.AddParameter("", encryptedbytes, ParameterType.RequestBody);
try
{
response = await client.GetResponseBytesAsync(request);
}
catch (Exception outer)
{
response.ErrorOccured = true;
response.ErrorMessage = outer.Message;
}
return response;
}
您的代码可能正在使用 请尝试像这样显式地在RestRequest中传递它-
request.AddParameter("Timeout", options.Timeout.Value);
var client = new RestClient(baseUrl)
{
Timeout = someTimeoutInMilliseconds
};
var request = new RestRequest(url)
{
Method = Method.GET,
Timeout = someTimeoutInMilliseconds
};
你可以试试这样更好的版本-
request.AddParameter("Timeout", options.Timeout.Value);
var client = new RestClient(baseUrl)
{
Timeout = someTimeoutInMilliseconds
};
var request = new RestRequest(url)
{
Method = Method.GET,
Timeout = someTimeoutInMilliseconds
};
你知道CONN_TIMEOUT=600000意味着它的时间是多少吗?您得到的StatusCode=NotFound表示404 http服务器错误我没有添加CONN_TIMEOUT=600000,即10分钟,起初,我从20秒、30秒等开始,由于服务器正在执行某些操作,因此发送响应需要一段时间。由于它需要超过100秒的时间,这是默认的超时时间,所以我得到了NotFound错误,否则对于其他web服务,它工作得很好。这篇文章讨论了另一个/不相关的问题,尽管复制过来的代码样式管理得很好。这些应该值得一试。