當使用HttpWebRequest進行訪問時,結果提示為302重定向錯誤。
使用代碼,
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "GET";
request.ContentType = "text/html";
request.AllowAutoRedirect = true;//設置自動重定向
request.ServicePoint.Expect100Continue = true;//設置自動重定向
request.MaximumAutomaticRedirections = 50;//允許最大重定向次數
request.CookieContainer = new CookieContainer();
//request.Timeout = 30000;
//request.ReadWriteTimeout = 30000;
ServicePointManager.ServerCertificateValidationCallback += (se, cert, chain, sslerror) =>
{
return true;
};
request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
var heards = request.GetResponse().Headers;
Stream myResponseStream = response.GetResponseStream();
using (StreamReader myStreamReader = new StreamReader(myResponseStream, encoding))
{
string retString = myStreamReader.ReadToEnd();
myStreamReader.Close();
myResponseStream.Close();
return retString;
}
最終發現。是少加了CookieContainer...猜測是由於重定向時候第一個網頁往頭部添加了一個Cookie這個Cookie發送給重定向地址,所以必須帶上CookieContainer。
