2013-11-27 4 views
2

일반 브라우저 (예 : Chrome)에서 http://www.litteraturmagazinet.se/arga-bibliotekstanten/boklogg/favorit-i-repris-9560835 페이지를 탐색해도 문제가 없습니다.HttpWebRequest.Create returns (500) Internal Server Error

하지만 다음 코드를 사용하여 웹 사이트를 가져 오면 내부 서버 오류 (500)가 발생합니까?

은 내가 사용하는 코드입니다 (그리고 내가 노력 다른 모든 웹 페이지에 잘 작동) :

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

예외가하는 GetResponse에 발생합니다.

예 : HttpWebRequest.GetResponse() returns error 500 Internal Server Error을 찾았지만 이해가 안됩니까? 요청하지 않는 이유는 무엇입니까?이 특정 웹 페이지에서 응답 수신 기능을 사용할 수 있습니까? 헤더에 무엇을 넣을 지 어떻게 알 수 있습니까? (나중에 다른 버전으로 업데이트 할 수 있다면 좋겠습니까?)

+0

'GetResponse()'의 예외는 무엇입니까? – 48klocs

+0

500은 다른 어떤 응답보다 좋습니다. 서버가 뭔가 다른 것을 돌려 주어야한다고 생각한다면, 기대하는 것을 파악하고 요청을 적절하게 구성하십시오. 한 가지 방법은 Fiddler를 사용하여 요청한 내용이 브라우저에서 보낸 것과 정확하게 일치하는지 확인하는 것입니다. –

+0

사이드 노트 :'Create' 콜에서 예외를 실제로 얻고 있습니까? 그것은'Create'가 어떤 발신 전화도해서는 안되기 때문에 매우 이상합니다 ... –

답변

6

나는 헤더없이 wfetch를 사용하여 귀하의 URL을 시도했지만, 나는 500 개를 얻습니다.

요청의 헤더에 적절한 사용자 에이전트를 설정해야합니다.

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

정말 고마워요! – Banshee

관련 문제