2017-02-08 29 views
0

내가 코드를 페이지의 HTML을 가져 오기 위해 노력하고있어를 통해 사용할 수 있습니다 .com, www.google.com 또는 www.nasa.gov. 그러나, URL 매개 변수에 'http'또는 'https'를 사용하여 www.epa.gov를 삽입하면 r.GetResponse()를 실행할 때 403 예외가 발생합니다. 그러나 브라우저에서 수동으로 페이지를 쉽게 가져올 수 있습니다. 내가 받고있는 예외는 403 (금단)이며 예외 상태 구성원은 "ProtocolError"라고합니다. 그게 무슨 뜻 이죠? 실제로이 페이지를 실제로 사용할 수 있습니까? 누구든지 아이디어가 있습니까? 감사!심지어 웹 페이지 불구하고 프로그램 403 예외 가져 오는 웹 페이지를 얻는 것은 브라우저

 string downloadString = client.DownloadString(szPageURL); 

가 동일한 예외를 얻었다 : -

BTW 나는 또한이 방법을 시도했다.

답변

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