[英]C# HttpWebRequest vs browser
我正在嘗試與Shopping.com REST服務集成。
因此,我編寫了一個簡單的(最少代碼)C#應用程序,以使用HttpWebRequest
類檢索XML數據。 我已經使用StopWatch
進行基准測試,響應時間(包括Stream.ReadToEnd()
) Stream.ReadToEnd()
毫秒。
聽起來不錯,但隨后我使用Fiddler在Chrome瀏覽器中測試了響應時間,響應時間約為600-800。
我讀過幾篇文章。 有人建議將HttpWebRequest.Proxy設置為null / WebRequest.DefaultWebProxy
但是並沒有明顯改善。
那么,我應該怎么做才能達到此響應時間?
您啟用gzip和deflate嗎?
另外,第一次在代碼中執行Web請求時,將進行預熱以加載必要的程序集,初始化服務點並建立HTTP連接,因此請確保查看第二次和后續執行的時間。
編輯:對不起,您仍然需要使用GZipStream或DeflateStream解碼結果,但這至少可以為您提供想法。 有關更多信息,請參見此處: HttpWebRequest和本機GZip壓縮
var timer = Stopwatch.StartNew();
var url = "http://sandbox.api.shopping.com/publisher/3.0/rest/GeneralSearch?apiKey=78b0db8a-0ee1-4939-a2f9-d3cd95ec0fcc&trackingId=7000610&keyword=nikon";
var webRequest = WebRequest.Create(url);
webRequest.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip, deflate");
using (var webResponse = webRequest.GetResponse())
using (var responseStream = webResponse.GetResponseStream())
using (var streamReader = new StreamReader(responseStream))
{
var content = streamReader.ReadToEnd();
}
var timeSpan = timer.Elapsed;
Console.WriteLine(timeSpan);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.