讓我糾結(jié)了一天多的問(wèn)題,給大家看下,有相同情況的可以不用浪費(fèi)時(shí)間了,本人當(dāng)時(shí)找了好半天都沒(méi)找到什么有用的信息,項(xiàng)目在本地沒(méi)有問(wèn)題,但部署在服務(wù)器后,獲取不到https頁(yè)面的信息,加入下面的代碼就可以了,因?yàn)閕is7.5的安全協(xié)議比較高的原因。
我的獲取頁(yè)面需要cookie,不需要的可以去掉;
GET的方法:
代碼如下:
/// <summary>
/// 獲取URL訪問(wèn)的HTML內(nèi)容 獲取https 頁(yè)面的
/// </summary>
/// <param name="Url">URL地址</param>
/// <returns>HTML內(nèi)容</returns>
public static string GetWebContent(string Url, CookieContainer cookieContainer)
{
string strResult = "";
try
{
ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
request.CookieContainer = cookieContainer;
request.Timeout = 30000;
request.Headers.Set("Pragma", "no-cache");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream streamReceive = response.GetResponseStream();
Encoding encoding = Encoding.GetEncoding("utf-8");
StreamReader streamReader = new StreamReader(streamReceive, encoding);
strResult = streamReader.ReadToEnd();
}
catch
{
}
return strResult;
}
POST的方法:
代碼如下:
/// <summary>
/// post提交數(shù)據(jù)到https
/// </summary>
/// <param name="posturl"></param>
/// <param name="postdata"></param>
/// <param name="header"></param>
/// <param name="cookieContainer"></param>
/// <returns></returns>
public static string SetPostHtml(string posturl, string postdata, HttpHeader header, CookieContainer cookieContainer)
{
string restr = "";
ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
HttpWebRequest request = null;
HttpWebResponse response = null;
request = (HttpWebRequest)WebRequest.Create(posturl);
request.CookieContainer = cookieContainer;
request.Method = header.method;
request.Referer = header.Referer;
request.ContentType = header.contentType;
byte[] postdatabyte = Encoding.UTF8.GetBytes(postdata);
request.ContentLength = postdatabyte.Length;
request.AllowAutoRedirect = false;
request.KeepAlive = true;
//提交請(qǐng)求
Stream stream;
stream = request.GetRequestStream();
stream.Write(postdatabyte, 0, postdatabyte.Length);
stream.Close();
//接收響應(yīng)
response = (HttpWebResponse)request.GetResponse();
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
restr = reader.ReadToEnd().ToString();
}
return restr;
}
更多信息請(qǐng)查看IT技術(shù)專欄