123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194 |
- using Newtonsoft.Json.Linq;
- using NXWMS.Client.Code.Models;
- using NXWMS.Client.Code.Serialize;
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Linq;
- using System.Net;
- using System.Net.Security;
- using System.Security.Cryptography.X509Certificates;
- using System.Text;
- namespace NXWMS.Client.Code.Net
- {
- /// <summary>
- /// Http请求帮助类
- /// </summary>
- public class HttpRequestHelper
- {
- /// <summary>
- /// 票据
- /// </summary>
- public string _Ticket { get; set; }
- private static bool RemoteCertificateValidate(object sender, X509Certificate cert, X509Chain chain, SslPolicyErrors error)
- {
- return true;
- }
- /// <summary>
- /// Get请求返回响应
- /// </summary>
- /// <param name="url"></param>
- /// <param name="parms"></param>
- /// <returns></returns>
- public string GET(string url, string parms)
- {
- ServicePointManager.ServerCertificateValidationCallback += RemoteCertificateValidate;
- ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072
- | SecurityProtocolType.Ssl3
- | SecurityProtocolType.Tls
- | (SecurityProtocolType)0x300
- | (SecurityProtocolType)0xC00;
- url = url + parms;
- HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
- request.Method = "GET";
- HttpWebResponse res;
- try
- {
- res = (HttpWebResponse)request.GetResponse();
- }
- catch (WebException ex)
- {
- res = (HttpWebResponse)ex.Response;
- }
- StreamReader sr = new StreamReader(res.GetResponseStream(), Encoding.UTF8);
- string content = sr.ReadToEnd();
- return content;
- }
- /// <summary>
- /// Post请求返回响应
- /// </summary>
- /// <param name="url"></param>
- /// <param name="pramstr"></param>
- /// <param name="param"></param>
- /// <returns></returns>
- public string POST(string url, string pramstr = null, Dictionary<string, string> param = null)
- {
- HttpWebRequest request = null;
- if (url.Contains("https://"))
- {
- ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(RemoteCertificateValidate);
- request = (HttpWebRequest)WebRequest.CreateDefault(new Uri(url));
- }
- else
- {
- request = (HttpWebRequest)WebRequest.Create(url);
- }
- //ServicePointManager.ServerCertificateValidationCallback += RemoteCertificateValidate;
- //ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072
- // | SecurityProtocolType.Ssl3
- // | SecurityProtocolType.Tls
- // | (SecurityProtocolType)0x300
- // | (SecurityProtocolType)0xC00; ;
- //var request = WebRequest.Create(url) as HttpWebRequest;
- //CookieContainer cookieContainer = new CookieContainer();
- //request.CookieContainer = cookieContainer;
- //request.AllowAutoRedirect = true;
- //request.MaximumResponseHeadersLength = 1024;
- request.Method = "POST"; //请求方式为post
- //request.AllowAutoRedirect = true;
- //request.MaximumResponseHeadersLength = 1024;
- request.ContentType = "application/json; charset=utf-8";
- if (!string.IsNullOrWhiteSpace(_Ticket))
- {
- request.Headers.Add("Authorization", "Bearer " + _Ticket);
- }
- JObject json = new JObject();
- string jsonstring;
- if (param != null)
- {
- if (param.Count != 0)
- {
- foreach (var item in param)
- {
- json.Add(item.Key, item.Value);
- }
- }
- jsonstring = json.ToString();
- }
- else if (!string.IsNullOrWhiteSpace(pramstr))
- {
- jsonstring = pramstr;
- }
- else
- {
- jsonstring = "";
- }
- var jsonbyte = Encoding.UTF8.GetBytes(jsonstring);
- using (var postStream = request.GetRequestStream())
- {
- postStream.Write(jsonbyte, 0, jsonbyte.Length);
- }
- // postStream.Close();
- HttpWebResponse res;
- StreamReader sr;
- string content;
- try
- {
- res = (HttpWebResponse)request.GetResponse();
- sr = new StreamReader(res.GetResponseStream(), Encoding.UTF8);
- content = sr.ReadToEnd();
- }
- catch (WebException ex)
- {
- var failResult = new OperateInResultInfo { AffectedRows = 0, Status = OperateInStatus.CodeError, Message = ex.Message };
- //res = (HttpWebResponse)ex.Response;
- //sr = new StreamReader(res.GetResponseStream(), Encoding.UTF8);
- content = JsonHandleHelper.SerializeObject(failResult);
- }
- return content;
- }
- /// <summary>
- /// Post数据流
- /// </summary>
- /// <param name="url"></param>
- /// <param name="arrAy"></param>
- /// <param name="parms"></param>
- /// <returns></returns>
- public string POSTStream(string url, byte[] arrAy, string parms)
- {
- HttpWebResponse res;
- try
- {
- ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072
- | SecurityProtocolType.Ssl3
- | SecurityProtocolType.Tls
- | (SecurityProtocolType)0x300
- | (SecurityProtocolType)0xC00; ;
- ServicePointManager.ServerCertificateValidationCallback += RemoteCertificateValidate;
- Encoding encode = System.Text.Encoding.GetEncoding("utf-8");
- byte[] arrB = arrAy;
- HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
- request.Method = "POST";
- request.ContentType = "application/x-www-form-urlencoded";
- request.ContentLength = arrB.Length;
- Stream outStream = request.GetRequestStream();
- outStream.Write(arrB, 0, arrB.Length);
- outStream.Close();
- res = (HttpWebResponse)request.GetResponse();
- }
- catch (WebException ex)
- {
- res = (HttpWebResponse)ex.Response;
- }
- StreamReader sr = new StreamReader(res.GetResponseStream(), Encoding.UTF8);
- string content = sr.ReadToEnd();
- return content;
- }
- }
- }
|