我正在尝试使用第三方服务API。他们带来的所有记录中的一种方法需要花费大量时间,大约9分钟(我使用chrome app" Advanced Rest Client")。
我试过设置webRequest.Timeout = 3600000;// Timeout.Infinite;
但它总是在2分钟后回来,结果包含135条记录(而Chrome应用程序返回1050条记录,这是正确的#)
我在两种情况下使用相同的参数(我将其作为POST数据发送);那么为什么结果有差异? 我在一个将在WPF应用程序中使用的类库中使用此代码。
非常感谢任何帮助/建议。
更新:添加代码
HttpWebRequest webRequest = (HttpWebRequest)HttpWebRequest.Create(url);
AllDevicesList devInfo = null;
try
{
string postData = "";
foreach (string key in postParameters.Keys)
{
postData += HttpUtility.UrlEncode(key) + "="
+ HttpUtility.UrlEncode(postParameters[key]) + "&";
}
postData = postData.TrimEnd('&');
if (cookie == null)
webRequest.CookieContainer = new CookieContainer();
else
webRequest.CookieContainer = cookie;
webRequest.Timeout = 3600000;// Timeout.Infinite; // 1000000;
webRequest.KeepAlive = true;
webRequest.Method = "POST";
byte[] data = Encoding.ASCII.GetBytes(postData);
webRequest.ContentType = "application/x-www-form-urlencoded";
webRequest.ContentLength = data.Length;
Stream requestStream = webRequest.GetRequestStream();
requestStream.Write(data, 0, data.Length);
WebResponse WebResp = webRequest.GetResponse();
DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(AllDevicesList));
object objResponse = jsonSerializer.ReadObject(WebResp.GetResponseStream());
devInfo = objResponse as AllDevicesList;
requestStream.Close();
WebResp.Close();
答案 0 :(得分:0)
我已将实现更改为Asynchronous,现在我获得了所有记录。 感谢您的所有回复。