HttpWebRequest(get,post)請求抓取信息出現500錯誤,抓取不到信息解決方案

我們抓取一個網頁的信息的時候,一般直接使用HttpWebRequest直接引用,但是由於安全原因,有時候會返回500錯誤,但是在瀏覽器查看源代碼,又是可以打開的,那是由於我們請求的代碼,過了簡單,所以我們使用以下的代碼就可以解決這個問題。
//直接傳入網頁就可以了
public String GetPageCode(string PageURL)
{
string Charset = "utf-8";
try
{
//存放目標網頁的html
String strHtml = "";
//連接到目標網頁
HttpWebRequest wreq = (HttpWebRequest)WebRequest.Create(PageURL);
wreq.Headers.Add("X_FORWARDED_FOR", "101.0.0.11"); //發送X_FORWARDED_FOR頭(若是用取源IP的方式,可以用這個來造假IP,對日誌的記錄無效)

            wreq.Method = "Get";
            wreq.KeepAlive = true;
            wreq.ContentType = "application/x-www-form-urlencoded";
            wreq.AllowAutoRedirect = true;
            wreq.Accept = "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*";
            wreq.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)";

            CookieContainer cookieCon = new CookieContainer();
            wreq.CookieContainer = cookieCon;

            HttpWebResponse wresp = (HttpWebResponse)wreq.GetResponse();

            //採用流讀取,並確定編碼方式
            Stream s = wresp.GetResponseStream();
            StreamReader objReader = new StreamReader(s, System.Text.Encoding.GetEncoding(Charset));
            //抓取所有的信息
            strHtml = objReader.ReadToEnd();

            return strHtml;
        }
        catch (Exception n) //遇到錯誤,打印錯誤
        {
            return n.Message;
        }
    }
            [深圳網站建設](https://www.sz886.com)[https://www.sz886.com](https://www.sz886.com)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章