2011-06-29 9 views
3

を返します。HttpWebRequest.GetResponse()私はURLにリクエストをするためには、HttpWebRequestを使用していますエラー500内部サーバーエラー

HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(urlAddress); 
HttpWebResponse resp = (HttpWebResponse)req.GetResponse(); 

が、私はURLAddressを訪問するとき、それはエラー500(内部サーバーエラー)をスローしますが、ブラウザがうまくいけば、urlAddress = www.khademnews.com

これは簡単なGET操作ですが、私には例外がスローされます。どのように解決できますか?

+2

サーバーは、Webブラウザーが通常送信する要求にいくつかのHTTPヘッダーがあると思われますが、HttpWebRequestは送信しません。これらのヘッダーを特定する必要があります(たとえば、[Fiddler](http://www.fiddler2.com/fiddler2/)を使用)し、それらをHttpWebRequestに追加する必要があります。 – dtb

答えて

12

サイトによっては、必要に応じてユーザーエージェントを設定する必要があります。また、あなたはあなたのコードを簡素化するためにWebClientを使用することができます。

using (var client = new WebClient()) 
{ 
    client.Headers[HttpRequestHeader.UserAgent] = "Mozilla/5.0 (Windows NT 6.1; rv:5.0) Gecko/20100101 Firefox/5.0"; 
    string result = client.DownloadString("http://www.khademnews.com"); 
} 

サーバーは、他のヘッダを期待するかもしれません。 FireBugで確認できます。どのヘッダーが送信されたのかは、ブラウザで要求を実行してこれらのヘッダーを追加することになります。

関連する問題