使用webresponse对象获取(500)内部服务器错误

时间:2013-02-02 03:28:33

标签: c# httpwebrequest httpresponse

尝试加载“http://links.casemakerlegal.com/states/CA/books/Case_Law/results?search[Cite]=214 Cal.App.3d 533”的Html内容,但是HttpWebResponse对象给出此错误“ (500内部服务器错误” 而代码是------ request = WebRequest.Create(urlCheck); request.Timeout = 100000; response = request.GetResponse(); strmRead = new StreamReader(response.GetResponseStream(),System.Text.Encoding.UTF8); result = strmRead.ReadToEnd();

2 个答案:

答案 0 :(得分:1)

您需要使用Wireshark或Ethereal等工具或浏览器中的开发人员工具对此进行进一步调查。浏览器可能会在HTTP头中发送一些代码不是的值,并且服务器因为这些缺失值而返回500。尝试复制浏览器在代码中使用的所有标头,看看这是否可以解决问题。

答案 1 :(得分:0)

通常是浏览器代理。尝试将有效的浏览器代理添加到您的请求标头以及Accept和Accept-Encoding标头

*编辑:例如:

request.UserAgent = "Mozilla/5.0 (Windows NT 5.2; WOW64; rv:2.0.1) Gecko/20100101 Firefox/4.0.1";
request.Headers.Add("Accept-Encoding: gzip, deflate");
request.Headers.Add("Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
request.Headers.Add("Accept-Language: en;q=0.8");