2013-11-27 119 views
2

它可以正常浏览此页面:http://www.litteraturmagazinet.se/arga-bibliotekstanten/boklogg/favorit-i-repris-9560835在常规浏览器中(例如Chrome)。HttpWebRequest.Create返回(500)内部服务器错误

但是,当我使用下面的代码来获取网站,我得到内部服务器错误(500)?

这是我使用的代码(这在我已经尝试了所有其他网页的伟大工程):

HttpWebRequest request; 
WebResponse webresponse; 
request = (HttpWebRequest)HttpWebRequest.Create(url); 
webresponse = (HttpWebResponse)request.GetResponse(); 

唯一的例外是抛出的GetResponse。

我找到了这样的例子:HttpWebRequest.GetResponse() returns error 500 Internal Server Error,但我不明白吗?为什么没有request.GetResponse与这个特定的网页?我怎样才能知道在头文件中放置什么(如果它稍后需要更新到不同版本,那将会很棒)?

+0

GetResponse()抛出什么异常? – 48klocs

+0

500与其他任何回应一样好。如果你认为服务器应该返回一些不同的东西 - 找出它的期望并适当地构建请求。一种方法是使用Fiddler并确保您的请求与浏览器发送的请求完全相同。 –

+0

附注:你是否真的从'Create'调用中得到这个异常?这很奇怪,因为'Create'不应该拨打任何电话...... –

回答

6

我试过你的URL与wfetch没有标题,我也得到了500。

您必须在请求的标题中设置适当的用户代理。

HttpWebRequest myHttpWebRequest=(HttpWebRequest)WebRequest.Create("http://www.contoso.com"); 
myHttpWebRequest.UserAgent=".NET Framework Test Client"; 
+0

非常感谢! – Banshee

相关问题