| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229 |
- 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;
- using System.Threading.Tasks;
- namespace RMYY_CallCenter_Api.Utility
- {
- public static class HttpHelper
- {
- #region POST
- /// <summary>
- /// HTTP POST方式请求数据
- /// </summary>
- /// <param name="url">URL.</param>
- /// <param name="param">POST的数据</param>
- /// <returns></returns>
- public static string HttpPost(string url, string param = null, string contenttype = "application/x-www-form-urlencoded")
- {
- HttpWebRequest request;
- //如果是发送HTTPS请求
- if (url.StartsWith("https", StringComparison.OrdinalIgnoreCase))
- {
- ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
- request = WebRequest.Create(url) as HttpWebRequest;
- request.ProtocolVersion = HttpVersion.Version10;
- }
- else
- {
- request = WebRequest.Create(url) as HttpWebRequest;
- }
- request.Method = "POST";
- request.ContentType = contenttype;
- request.Accept = "*/*";
- request.Timeout = 15000;
- request.AllowAutoRedirect = false;
- StreamWriter requestStream = null;
- WebResponse response = null;
- string responseStr = null;
- try
- {
- if (ConfigHelper.GetValue("IsLog").ToString() == "1")
- {
- LogHelper.Info("post请求:" + url + ",参数:" + (param ?? ""));
- }
- requestStream = new StreamWriter(request.GetRequestStream());
- requestStream.Write(param);
- requestStream.Close();
- response = request.GetResponse();
- if (response != null)
- {
- StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
- responseStr = reader.ReadToEnd();
- reader.Close();
- }
- if (ConfigHelper.GetValue("IsLog").ToString() == "1")
- {
- LogHelper.Info("post请求结果:" + responseStr);
- }
- }
- catch (Exception ex)
- {
- responseStr = null;
- LogHelper.Error("post请求失败,url:" + url + ",参数:" + (param ?? ""), ex);
- }
- finally
- {
- request = null;
- requestStream = null;
- response = null;
- }
- return responseStr;
- }
- private static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
- {
- return true; //总是接受
- }
- #endregion
- #region Get
- /// <summary>
- /// HTTP GET方式请求数据.
- /// </summary>
- /// <param name="url">URL.</param>
- /// <returns></returns>
- public static string HttpGet(string url)
- {
- HttpWebRequest request;
- //如果是发送HTTPS请求
- if (url.StartsWith("https", StringComparison.OrdinalIgnoreCase))
- {
- ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
- request = WebRequest.Create(url) as HttpWebRequest;
- request.ProtocolVersion = HttpVersion.Version10;
- }
- else
- {
- request = WebRequest.Create(url) as HttpWebRequest;
- }
- request.Method = "GET";
- //request.ContentType = "application/x-www-form-urlencoded";
- request.Accept = "*/*";
- request.Timeout = 15000;
- request.AllowAutoRedirect = false;
- WebResponse response = null;
- string responseStr = null;
- try
- {
- if (ConfigHelper.GetValue("IsLog").ToString() == "1")
- {
- LogHelper.Info("get请求url:" + url);
- }
- response = request.GetResponse();
- if (response != null)
- {
- StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
- responseStr = reader.ReadToEnd();
- reader.Close();
- }
- if (ConfigHelper.GetValue("IsLog").ToString() == "1")
- {
- LogHelper.Info("get请求结果:" + responseStr);
- }
- }
- catch (Exception ex)
- {
- responseStr = null;
- LogHelper.Error("get请求失败,url:" + url, ex);
- }
- return responseStr;
- }
- #endregion
- #region Put
- /// <summary>
- /// HTTP Put方式请求数据.
- /// </summary>
- /// <param name="url">URL.</param>
- /// <returns></returns>
- public static string HttpPut(string url, string param = null, string contenttype = "application/x-www-form-urlencoded")
- {
- HttpWebRequest request;
- //如果是发送HTTPS请求
- if (url.StartsWith("https", StringComparison.OrdinalIgnoreCase))
- {
- ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
- request = WebRequest.Create(url) as HttpWebRequest;
- request.ProtocolVersion = HttpVersion.Version10;
- }
- else
- {
- request = WebRequest.Create(url) as HttpWebRequest;
- }
- request.Method = "PUT";
- request.ContentType = contenttype;
- request.Accept = "*/*";
- request.Timeout = 15000;
- request.AllowAutoRedirect = false;
- StreamWriter requestStream = null;
- WebResponse response = null;
- string responseStr = null;
- try
- {
- if (ConfigHelper.GetValue("IsLog").ToString() == "1")
- {
- LogHelper.Info("put请求:" + url + ",参数:" + (param ?? ""));
- }
- requestStream = new StreamWriter(request.GetRequestStream());
- requestStream.Write(param);
- requestStream.Close();
- response = request.GetResponse();
- if (response != null)
- {
- StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
- responseStr = reader.ReadToEnd();
- reader.Close();
- }
- if (ConfigHelper.GetValue("IsLog").ToString() == "1")
- {
- LogHelper.Info("put请求结果:" + responseStr);
- }
- }
- catch (Exception ex)
- {
- responseStr = null;
- LogHelper.Error("put请求失败,url:" + url + ",参数:" + (param ?? ""), ex);
- }
- finally
- {
- request = null;
- requestStream = null;
- response = null;
- }
- return responseStr;
- }
- #endregion
- }
- }
|