C#HttpWebRequest与浏览器

C#HttpWebRequest与浏览器,c#,http,rest,networking,httpwebrequest,C#,Http,Rest,Networking,Httpwebrequest,我正在尝试与Shopping.com REST服务集成。 因此,我编写了一个简单的(最少代码)C#应用程序,使用HttpWebRequest类检索XML数据。我使用了秒表作为基准点,响应时间(包括Stream.ReadToEnd())大约为1300-1700毫秒 听起来可能不错,但我用Fiddler在Chrome浏览器中测试了响应时间,响应时间约为600-800 我读过几篇文章。一些人建议将HttpWebRequest.Proxy设置为null/WebRequest.DefaultWebProx

我正在尝试与Shopping.com REST服务集成。
因此,我编写了一个简单的(最少代码)C#应用程序,使用
HttpWebRequest
类检索XML数据。我使用了
秒表
作为基准点,响应时间(包括
Stream.ReadToEnd()
)大约为1300-1700毫秒

听起来可能不错,但我用Fiddler在Chrome浏览器中测试了响应时间,响应时间约为600-800

我读过几篇文章。一些人建议将HttpWebRequest.Proxy设置为null/
WebRequest.DefaultWebProxy
,但没有显著改进

这里是请求url:


那么,我应该怎么做才能达到这个响应时间呢

您是否启用gzip和deflate

另外,当您第一次在代码中执行web请求时,会有一个预热过程来加载必要的程序集、初始化服务点和建立HTTP连接,因此请务必查看第二次和后续执行的时间

编辑:很抱歉,您仍然需要使用GZipStream或deflatesttream对结果进行解码,但这至少给了您一个想法。有关更多信息,请参见此处:

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