0
我正在使用以下代码行来读取异步HttpWebRequest的响应。这似乎是在特定操作中花费的最多时间。有什么我可以在这里优化?优化HttpWebResponse - GetResponse
System.Net.HttpWebResponse oResp =(System.Net.HttpWebResponse)oReq.EndGetResponse(oResult);
oResp = (HttpWebResponse)oReq.GetResponse();
StreamReader oStreamReader = new StreamReader(oResp.GetResponseStream());
string sResponse = oStreamReader.ReadToEnd();
...继续制作一个XmlDocument,附加一些更多的XML,然后执行XSL转换。
创建连接:
HttpWebRequest oReq;
oReq = (HttpWebRequest)WebRequest.Create(sUrl + sQueryString);
oReq.ContentType = sContentType;
oReq.Method = "POST";
oReq.ContentLength = aBytes.Length;
Stream oStream = oReq.GetRequestStream();
oStream.Write(aBytes, 0, aBytes.Length);
oStream.Close();
AsyncState oState = new AsyncState(oReq);
return oReq.BeginGetResponse(fCallBack, oState);
为了回答这个问题,您需要收集更多信息。延迟发生在客户端还是服务器上?你提到你需要创建一个XML文档 - 服务器是即时生成这个文档还是从磁盘提供文档? 您正在浏览代理? 您使用的是身份验证吗? 你使用Tcp保持连接吗?与此相关的是,这个请求是在一个循环中完成的,还是这是一个一次性的应用程序,只是这个请求并结束? 显示您如何创建请求的代码片段。 我们可以从那里进一步... – feroze 2010-02-10 00:05:53
此外,为什么你再次调用EndGetResponse()然后GetResponse()?这不正确的使用API。 – feroze 2010-02-10 02:10:24
一些更多信息: 服务器正在生成xml。 我不使用代理服务器。 通话已通过身份验证。 连接不会保持活动状态。 这些连接是一次性的,每个负载不会有超过一次的连接。 我已经在上面添加了如何创建请求。 – aepheus 2010-02-15 19:50:50