HttpWebResponse 원격 서버 반환 오류: (500) 내부 서버 오류 해결 방법

3768 단어
작업 중에 C#로 작은 프로그램을 개발하여 웹 사이트의 페이지를 요청하는 데 끊임없이 방문하고 순환하는 과정에서 때때로'원격 서버 반환 오류: (500) 내부 서버 오류'를 보고할 수도 있고 때때로 그렇지 않으며 나타나는 시기도 다르다.처음에는 사이트의 문제라고 생각했는데, 나중에 사이트는 정상적으로 방문할 수 있게 되었다. 그것이 바로 자신의 프로그램의 문제이다.
for (int i = refreshAccount.startNum; i <= refreshAccount.endNum; i++)
{
      String data2 = urlstr; loadBranch2Request = (HttpWebRequest)HttpWebRequest.Create(data2); loadBranch2Request.CookieContainer = request2.CookieContainer; loadBranch2Response = (HttpWebResponse)loadBranch2Request.GetResponse(); reader = new StreamReader(loadBranch2Response.GetResponseStream(), Encoding.UTF8); string result3 = reader.ReadToEnd(); loadBranch2Response.Close(); reader.Close(); ………… }

 
두 가지 방향에서 원인을 찾는데 하나는 HttpWebRequest의 정확한 작법이고, 다른 하나는 상술한 문제가 발생한 원인이다.같은 문제의 해결 방법을 찾아본 후 대체적으로 신문을 요청하는 문제로 판단했다.
두 참고 문서는 다음과 같습니다.
C# 아날로그 http 전송post 또는 get 요청:https://www.cnblogs.com/aaronguo/p/7063790.html
HttpWebResponse 원격 서버 반환 오류: (500) 내부 서버 오류 해결 방법:https://blog.csdn.net/henrycg55/article/details/5330323
 
당연히 get 방법을 쓰는 줄 알았는데loadBranch2Request를 설정하지 않아도 돼요.ContentType의 값, 사실상 Method와 ContentType의 값을 설정하면 위의 문제가 해결됩니다.
loadBranch2Request.Method = "GET";
loadBranch2Request.ContentType = "text/html;charset=UTF-8";
for (int i = refreshAccount.startNum; i <= refreshAccount.endNum; i++)
{
  String data2 = urlstr;
  loadBranch2Request = (HttpWebRequest)HttpWebRequest.Create(data2);
  loadBranch2Request.CookieContainer = request2.CookieContainer;
  loadBranch2Request.Method = "GET";
  loadBranch2Request.ContentType = "text/html;charset=UTF-8";
  loadBranch2Response = (HttpWebResponse)loadBranch2Request.GetResponse();
  reader = new StreamReader(loadBranch2Response.GetResponseStream(), Encoding.UTF8);

  string result3 = reader.ReadToEnd();
  loadBranch2Response.Close();
  reader.Close();
   …………
}

 
잘못된 페이지의 원본 코드를 가져오려면 다음과 같은 방법을 사용할 수 있습니다
참조:https://www.cnblogs.com/cresuccess/archive/2009/12/09/1619977.html
다음 코드를 사용하면 오류가 발생하든 안 발생하든 서버 섹션 페이지의 원본 코드를 얻을 수 있습니다.
 HttpWebResponse res;
try
{
res = (HttpWebResponse)req.GetResponse();
}
catch (WebException ex)
{
res = (HttpWebResponse)ex.Response;
}
StreamReader sr = new StreamReader(res.GetResponseStream(), strEncode);
strHtml = sr.ReadToEnd();
 ,WebException   StatusCode   HTTP  ,  Response   WebResponse,  HTTP  。

 
다음으로 전송:https://www.cnblogs.com/zhaoshizi/p/9217373.html

좋은 웹페이지 즐겨찾기