问题描述
|
这是一个示例网站
http://us.blizzard.com/store/browse.xml?f=c:5,c:33
当我在Firefox中检查响应时,它是application / xhtml
当我使用以下标头向同一网址服务器端发出请求时
var request = (HttpWebRequest)WebRequest.Create(url);
var cookieContainer = new CookieContainer();
request.CookieContainer = cookieContainer;
request.UserAgent = @\"Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5\";
request.Method = \"GET\";
request.AllowAutoRedirect = true;
request.Timeout = 15000;
响应是application / xml
有任何想法吗?
谢谢
解决方法
尝试在请求中包含
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
。
request.Accept = @\"text/html,*/*;q=0.8\";
编辑:
尝试从Firefox复制请求。
我尝试了这一点(我使用chrome + chrome开发工具获取标题)
request.CookieContainer = cookieContainer;
request.UserAgent = @\"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.30 (KHTML,like Gecko) Chrome/12.0.742.68 Safari/534.30\";
request.Accept = @\"text/html,*/*;q=0.8\";
request.Headers.Add(\"Accept-Encoding\",\"gzip,deflate,sdch\");
request.Headers.Add(\"Accept-Charset\",\"ISO-8859-1,utf-8;q=0.7,*;q=0.3\");
request.Headers.Add(\"Accept-Language\",\"en-US,en;q=0.8\");
request.Method = \"GET\";
request.AllowAutoRedirect = true;
request.Timeout = 15000;
然后回到application/xhtml+xml