using System.Net;
using System.Net;
using System.Security.Cryptography.X509Certificates; //修改安全协议时用到
public static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
{ // 安全验证时总是返回ture
return true;
}
//发送请求,回调
ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(CheckValidationResult);//不进行安全验证
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls11;//设置http的安全协议
string url = "url";
HttpWebRequest request = HttpWebRequest.Create(url) as HttpWebRequest;
request.Method = "GET";
request.ContentType = " application/x-www-form-urlencoded";
request.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)";
request.KeepAlive = false;
request.ProtocolVersion = HttpVersion.Version11;
IAsyncResult result = (IAsyncResult)request.BeginGetResponse(GetStatisticCallBack, request);
private static void GetStatisticCallBack(IAsyncResult result)
{
HttpWebRequest myHttpWebRequest = (HttpWebRequest)result.AsyncState;
string responseData = "";
try
{
HttpWebResponse response = (HttpWebResponse)myHttpWebRequest.EndGetResponse(result);
using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
{
responseData = reader.ReadToEnd().ToString();
}
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex.ToString());
}
}
ServicePointManager.SecurityProtocol: 获取或设置ServicePointManager对象管理的ServicePoint对象所使用的安全协议。此属性仅用于HTTPS连接,用于设置SSL和TLS协议。
Method: 请求的方法。可以是 GET HEAD POST PUT DELETE TRACE OPTIONS中的一个。
ContentType: 获取或设置HTTP标头的值。
延伸:
SSL:
TLS: Transport Layer Security 安全传输层协议,用于在两个通信应用程序之间提供保密性和数据完整性。