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