일부 데이터를 반환하는 웹 사이트를 호출하는 코드를 작성했습니다. 나는 HttpWebRequest.GetResponse()
방법을 사용했다. 브라우저에서 URL을 클릭하면 데이터가 반환됩니다. 그러나 내 C# 코드에서 때로는 데이터를 반환하고 때로는 아무 것도 반환하지 않습니다.HttpWebRequest GetResponse() 반환하지 않음
요청이 시간 초과 또는 액세스 거부와 같은 오류를 발생시키지 않습니다. 그것은 아무것도 반환하지 않습니다. 코드에서 디버거를 사용하면 데이터를 반환합니다.
코드는 다음과 같습니다.
HttpWebRequest clnt = (HttpWebRequest)HttpWebRequest.Create(restURL);
var resp = clnt.GetResponse();
if ((resp.ContentLength > 0))
{
using (System.IO.StreamReader str = new System.IO.StreamReader(resp.GetResponseStream()))
{
if (str != null)
{
string response = str.ReadToEnd();
str.Close();
return response;
}
}
}
무엇이든 놓치면 도와주세요.
'사용 중'문이 하나 빠져 있습니다. 내용이 없더라도 항상 웹 응답을 폐기해야합니다. 실패 사례에서 어떤 일이 일어 났는지는 말하지 않았습니다. 요청이 실제로 완료되었지만 내용이 없거나 시간이 초과 되었습니까? 무효 체크는 무의미하다. 생성자를 방금 호출 했으므로'str'은 결코 null이 될 수 없다. –
HttpWebRequest에서 특별한 작업을 수행하지 않으면 WebClient를 사용할 수 있습니다. (var client = new WebClient()) { string response = client.DownloadString (restUrl); } –
요청이 시간 초과 또는 액세스 거부와 같은 오류를 발생시키지 않습니다. 그것은 아무것도 반환하지 않습니다. 코드에서 디버거를 사용하면 데이터가 반환됩니다. –