C#HttpWebRequest与浏览器
我正在尝试与Shopping.com REST服务集成。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
因此,我编写了一个简单的(最少代码)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);