|
|
8鱼币
| /// 类说明:HttpHelps类,用来实现Http访问,Post或者Get方式的,直接访问,带Cookie的,带证书的等方式 |
| /// </summary>using System; |
| using System.Collections.Generic; |
| using System.Security.Cryptography.X509Certificates; |
| using System.Net.Security; |
| ///HttpHelpers 主要是实现Http方式的Get和Post方式请求 |
| request.Accept = "text/html, application/xhtml+xml, */*"; |
| request.ContentType = "application/x-www-form-urlencoded"; |
| private string RequestURl { get; set; } |
| private Encoding encoding { get; set; } |
| private HttpWebRequest request { get; set; } |
| private HttpWebResponse response { get; set; } |
| //证书文件X509Certificate objx509 = new X509Certificate(Application.StartupPath + "\\123.cer"); |
| X509Certificate objx509 { get; set; } |
| private string Method { get; set; } |
| private string Accept { get; set; } |
| private string ContentType { get; set; } |
| private string UserAgent { get; set; } |
| private CookieContainer cookie { get; set; } |
| private string reutrnDate { get; set; } |
| private string strPostdata { get; set; } |
| private bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors) |
| /// <param name="strPostdata">传入的数据Post方式,get方式传NUll或者空字符串都可以</param> |
| /// <returns>string类型的响应数据</returns> |
| private string GetHttpRequestData() |
| //这一句一定要写在创建连接的前面。使用回调的方法进行证书验证。 |
| ServicePointManager.ServerCertificateValidationCallback = |
| new System.Net.Security.RemoteCertificateValidationCallback(CheckValidationResult); |
| request = (HttpWebRequest)WebRequest.Create(RequestURl); |
| request.ClientCertificates.Add(objx509); |
| request.CookieContainer = cookie; |
| if (Method.Trim().ToLower() == "post") |
| byte[] buffer = encoding.GetBytes(strPostdata); |
| request.ContentLength = buffer.Length; |
| request.GetRequestStream().Write(buffer, 0, buffer.Length); |
| using (response = (HttpWebResponse)request.GetResponse()) |
| using (StreamReader reader = new StreamReader(response.GetResponseStream(), encoding)) |
| //从当前开始读取整个流数据,默认为0所以读取的是全部,并返回数据 |
| reutrnDate = reader.ReadToEnd().ToString().Trim(); |
| reutrnDate = "String Error"; |
| private void GetEonding() |
| if (response.CharacterSet.Trim() != "") |
| encoding = System.Text.Encoding.GetEncoding(response.CharacterSet.Trim()); |
| encoding = System.Text.Encoding.UTF8; |
| /// <param name="_url">URl地址</param> |
| /// <param name="_strPostdata">Post请求方式时传入的数据</param> |
| /// <param name="_Method">请求方式GET或者POST可以为空默认为GET</param> |
| /// <param name="_encoding">编码方式可以为空默认为UTF-8</param> |
| /// <param name="_Accept">Accept属性</param> |
| /// <param name="_ContentType">ContentType属性</param |
| /// <param name="_UserAgent">UserAgent属性</param |
| /// <param name="_cookie">CookieContainer列表</param |
| /// <param name="_objx509">X509Certificate证书对象</param |
| /// <returns>请求所得到的数据</returns> |
| public string GetString_null(string _url, string _strPostdata, string _Method, Encoding _encoding, string _Accept, |
| string _ContentType, string _UserAgent, CookieContainer _cookie, X509Certificate _objx509) |
| ContentType = _ContentType; |
| return GetHttpRequestData(); |
| /// <param name="_url">URl地址</param> |
| /// <param name="_strPostdata">Post请求方式时传入的数据</param> |
| /// <param name="_Method">请求方式GET或者POST可以为空默认为GET</param> |
| /// <param name="_encoding">编码方式可以为空默认为UTF-8</param> |
| /// <returns>请求所得到的数据</returns> |
| public string GetString_type(string _url, string _Method, Encoding _encoding) |
| return GetHttpRequestData(); |
|
|