c# HttpWebReQuest

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连接,用于设置SSLTLS协议。
Method: 请求的方法。可以是 GET HEAD POST PUT DELETE TRACE OPTIONS中的一个。
ContentType: 获取或设置HTTP标头的值。


延伸:

SSL:

TLS: Transport Layer Security 安全传输层协议,用于在两个通信应用程序之间提供保密性和数据完整性。

猜你喜欢

转载自blog.csdn.net/yue1241630499/article/details/79412481