先看下请求方法
1 public string Get_Request(
2 string strUrl,
3 CookieContainer _cookie = null,
4 string strHost = "",
5 string strRefer = "",
6 string strOrigin = "",
7 bool blnHttps = false,
8 Dictionary<string, string> lstHeads = null,
9 bool blnKeepAlive=false,
10 string strEncoding = "utf-8",
11 string strContentType = "",
12 string strCertFile="",
13 string strAccept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
14 string strUserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36",
15 bool blnAllowAutoRedirect = true,
16 int intTimeout = 1000 * 30)
17 {
18 HttpWebRequest request;
19 HttpWebResponse response;
20 request = (HttpWebRequest)WebRequest.Create(strUrl);
21 if (blnHttps)
22 {
23 ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
24 request.ProtocolVersion = HttpVersion.Version10;
25
26 ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
27
28 }
29 request.KeepAlive = blnKeepAlive;
30 request.Accept = strAccept;
31 request.Timeout = intTimeout;
32 request.Method = "GET";
33 request.Credentials = CredentialCache.DefaultCredentials;
34 request.UserAgent = strUserAgent;
35 request.AllowAutoRedirect = blnAllowAutoRedirect;
36 request.Proxy = null;
37 if (!string.IsNullOrEmpty(strContentType))
38 {
39 request.ContentType = strContentType;
40 }
41 if (_cookie != null)
42 {
43 request.CookieContainer = _cookie;
44 }
45 if (!string.IsNullOrEmpty(strHost))
46 {
47 request.Host = strHost;
48 }
49 if (!string.IsNullOrEmpty(strRefer))
50 {
51 request.Referer = strRefer;
52 }
53 if (!string.IsNullOrEmpty(strOrigin))
54 {
55 request.Headers.Add("Origin", strOrigin);
56 }
57 if (lstHeads != null && lstHeads.Count > 0)
58 {
59 foreach (var item in lstHeads)
60 {
61 request.Headers.Add(item.Key, item.Value);
62 }
63 }
64 response = (HttpWebResponse)request.GetResponse();
65 var sr = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(strEncoding));
66 string strResult = sr.ReadToEnd();
67 sr.Close();
68 request.Abort();
69 response.Close();
70 return strResult;
71
72 }
73 private static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
74 {
75 return true; //总是接受
76 }
if (blnHttps)内的代码就是针对https所做的处理
需要注意的是
1、当使用https请求的时候需要确定加密协议是哪个,这个可以通过火狐查看到,如下图
2、只有Framework4.5及以上才支持1.1和1.2协议
如果仍有什么不明白的地方请留言吧