2017-02-08 11 views
0

経由で利用可能であるにも関わらず、プログラム403例外フェッチWebページを取得します.com、www.google.com、またはwww.nasa.gov。しかし、私がwww.epa.gov(URLパラメータに 'http'または 'https'を使用)を入れると、r.GetResponse()を実行するときに403の例外が発生します。しかし、ブラウザで手動でページを簡単に取得できます。私が得ている例外は403(禁止されています)で、例外ステータスメンバーは "ProtocolError"です。どういう意味ですか?なぜ私は実際に利用可能なページでこれを取得していますか?誰にでもアイデアはありますか?ありがとう!は、Webページが、私はコードをページのHTMLを取得しようとしているブラウザ

 string downloadString = client.DownloadString(szPageURL); 

はまったく同じ例外が発生しました: -

ところで私もこの方法を試してみました。

答えて

0

は、それが動作しますが、このコードを試してみてください。

string Url = "https://www.epa.gov/"; 
CookieContainer cookieJar = new CookieContainer(); 
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url); 
request.CookieContainer = cookieJar; 
request.Accept = @"text/html, application/xhtml+xml, */*"; 
request.Referer = @"https://www.epa.gov/"; 
request.Headers.Add("Accept-Language", "en-GB"); 
request.UserAgent = @"Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)"; 
request.Host = @"www.epa.gov"; 
HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
String htmlString; 
using (var reader = new StreamReader(response.GetResponseStream())) 
{ 
htmlString = reader.ReadToEnd(); 
} 
+0

ありがとう!私のコードは基本的には動作しませんでした。なぜなら、ブラウザを設定してクッキーを受け入れずにページにアクセスしようとするのと同じだったからです。 – lerxst3

関連する問題