.net 擷取https頁面的資訊 在iis7.5伺服器上不管用

來源:互聯網
上載者:User

標籤:style   class   blog   code   http   tar   

讓我糾結了一天多的問題,給大家看下,有相同情況的可以不用浪費時間了,本人當時找了好半天都沒找到什麼有用的資訊,項目在本地沒有問題,但部署在伺服器後,擷取不到https頁面的資訊,加入下面的代碼就可以了,因為iis7.5的安全性通訊協定比較高的原因。

我的擷取頁面需要cookie,不需要的可以去掉;

GET的方法:

 1  /// <summary> 2         /// 擷取URL訪問的HTML內容 擷取https 頁面的 3         /// </summary> 4         /// <param name="Url">URL地址</param> 5         /// <returns>HTML內容</returns> 6         public static string GetWebContent(string Url, CookieContainer cookieContainer) 7         { 8             string strResult = ""; 9             try10             {11                 ServicePointManager.Expect100Continue = true;12                 ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;13                 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);14                 request.CookieContainer = cookieContainer;15                 request.Timeout = 30000;16                 request.Headers.Set("Pragma", "no-cache");17 18                 HttpWebResponse response = (HttpWebResponse)request.GetResponse();19                 Stream streamReceive = response.GetResponseStream();20 21                 Encoding encoding = Encoding.GetEncoding("utf-8");22                 StreamReader streamReader = new StreamReader(streamReceive, encoding);23                 strResult = streamReader.ReadToEnd();24             }25             catch26             {27 28             }29             return strResult;30         }
View Code

POST的方法:

 1 /// <summary> 2         /// post提交資料到https 3         /// </summary> 4         /// <param name="posturl"></param> 5         /// <param name="postdata"></param> 6         /// <param name="header"></param> 7         /// <param name="cookieContainer"></param> 8         /// <returns></returns> 9         public static string SetPostHtml(string posturl, string postdata, HttpHeader header, CookieContainer cookieContainer)10         {11             string restr = "";12             ServicePointManager.Expect100Continue = true;13             ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;14             HttpWebRequest request = null;15             HttpWebResponse response = null;16             request = (HttpWebRequest)WebRequest.Create(posturl);17             request.CookieContainer = cookieContainer;18             request.Method = header.method;19             request.Referer = header.Referer;20             request.ContentType = header.contentType;21             byte[] postdatabyte = Encoding.UTF8.GetBytes(postdata);22             request.ContentLength = postdatabyte.Length;23             request.AllowAutoRedirect = false;24             request.KeepAlive = true;25             //提交請求26             Stream stream;27             stream = request.GetRequestStream();28             stream.Write(postdatabyte, 0, postdatabyte.Length);29             stream.Close();30             //接收響應31             response = (HttpWebResponse)request.GetResponse();32             using (StreamReader reader = new StreamReader(response.GetResponseStream()))33             {34                 restr = reader.ReadToEnd().ToString();35             }36             return restr;37         }
View Code

希望對大家有協助;

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.