繁体   English   中英

运行时间长,但长度有限的HttpWebRequest调用仅获取部分数据

[英]Long running, but finite length HttpWebRequest Callout gets only partial data

我正在尝试使用第三方服务api。 他们采用的方法之一是引入所有记录,这需要很长时间,大约需要9分钟(我使用chrome应用程序“ Advanced Rest Client”进行了尝试)。

我试过设置webRequest.Timeout = 3600000;// Timeout.Infinite; 但是它总是在大约2分钟后返回,并且结果包含135条记录(而chrome应用返回1050条记​​录,这是正确的#)

我在两种情况下都使用相同的参数(我将其作为POST数据发送); 那为什么结果有差异呢? 我在类库中使用此代码,该类库将在WPF应用程序中使用。

  1. 超时有最大值吗?
  2. Timeout.Infinite将其设置为“ -1”,对吗?
  3. 获取所有数据的其他解决方法是什么?

任何帮助/建议,我们将不胜感激。

更新:添加代码

 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();

我已将实现更改为异步,现在我已获取所有记录。 感谢您的所有回复。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM