C# 后台发送http请求

 public class WllRequest
 {
     private static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
     {
          return true; //总是接受  
     }
     
    public static string HttpRequest(string url)
    {
        try
        {
            HttpWebRequest httpRequest;
            if (url.StartsWith("https", StringComparison.OrdinalIgnoreCase))
            {
                ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
                httpRequest = WebRequest.Create(url) as HttpWebRequest;
                httpRequest.ProtocolVersion = HttpVersion.Version10;
            }
            else
                httpRequest = WebRequest.Create(url) as HttpWebRequest;
            httpRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36";
            HttpWebResponse httpResp = (HttpWebResponse)httpRequest.GetResponse();
            Stream responseStream = httpResp.GetResponseStream(); //获得响应的流
            StringBuilder strBuff = new StringBuilder();
            using (StreamReader responseStreamReader = new StreamReader(responseStream, Encoding.UTF8))
            {
                char[] cbuffer = new char[256];
                int byteRead = responseStreamReader.Read(cbuffer, 0, 256);
                while (byteRead != 0)
                {
                    string strResp = new string(cbuffer, 0, byteRead);
                    strBuff.Append(strResp);
                    byteRead = responseStreamReader.Read(cbuffer, 0, 256);
                }
            }
            return strBuff.ToString();
        }
        catch(Exception ex)
        {
            //如何需要记录错误日志可在这里记录 或抛出异常
            return null;
        }
    }

    /// <summary>
    /// Post请求
    /// </summary>
    /// <param name="url">请求的地址</param>
    /// <param name="ua">用户代理</param>
    /// <param name="param">请求的参数 => json字符串</param>
    /// <returns>返回json字符串</returns>
    public static string Post(string url,string ua, string param)
    {
    try{
        HttpWebRequest httpRequest;
        if (url.StartsWith("https", StringComparison.OrdinalIgnoreCase))
        {
            ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
            httpRequest = WebRequest.Create(url) as HttpWebRequest;
            httpRequest.ProtocolVersion = HttpVersion.Version10;
        }
        else
            httpRequest = WebRequest.Create(url) as HttpWebRequest;
        httpRequest.UserAgent = ua;
        httpRequest.Method = "POST";
        httpRequest.ContentType = "application/json;charset=UTF-8";
        string paraUrlCoded = param;
        byte[] payload = System.Text.Encoding.UTF8.GetBytes(paraUrlCoded);
        httpRequest.ContentLength = payload.Length;
        using (Stream wStream = httpRequest.GetRequestStream())
        {
            wStream.Write(payload, 0, payload.Length);
        }
        HttpWebResponse response = (System.Net.HttpWebResponse)httpRequest.GetResponse();
        Stream responseStream = response.GetResponseStream();
        StringBuilder strBuff = new StringBuilder();
        using (StreamReader responseStreamReader = new StreamReader(responseStream, Encoding.UTF8))
        {
            char[] cbuffer = new char[256];
            int byteRead = responseStreamReader.Read(cbuffer, 0, 256);
            while (byteRead != 0)
            {
                string strResp = new string(cbuffer, 0, byteRead);
                strBuff.Append(strResp);
                byteRead = responseStreamReader.Read(cbuffer, 0, 256);
            }
        }
        return strBuff.ToString();
        }
        catch(Exception ex){
             //如何需要记录错误日志可在这里记录 或抛出异常
             return null;
        }
    }

    /// <summary>
    /// GET请求
    /// </summary>
    /// <param name="url">请求的地址</param>
    /// <param name="ua">用户代理</param>
    /// <param name="param">请求的参数 => json字符串</param>
    /// <returns>返回json字符串</returns>
    public static string Get(string url, string ua, string param)
    {
    try{
        HttpWebRequest httpRequest;
        if (url.StartsWith("https", StringComparison.OrdinalIgnoreCase))
        {
            ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
            httpRequest = WebRequest.Create(url) as HttpWebRequest;
            httpRequest.ProtocolVersion = HttpVersion.Version10;
        }
        else
            httpRequest = WebRequest.Create(url) as HttpWebRequest;
        httpRequest.UserAgent = ua;
        httpRequest.ContentType = "application/json;charset=UTF-8";
        string paraUrlCoded = param;
        byte[] payload = System.Text.Encoding.UTF8.GetBytes(paraUrlCoded);
        httpRequest.ContentLength = payload.Length;
        using (Stream wStream = httpRequest.GetRequestStream())
        {
            wStream.Write(payload, 0, payload.Length);
        }
        HttpWebResponse response = (System.Net.HttpWebResponse)httpRequest.GetResponse();
        Stream responseStream = response.GetResponseStream();
        StringBuilder strBuff = new StringBuilder();
        using (StreamReader responseStreamReader = new StreamReader(responseStream, Encoding.UTF8))
        {
            char[] cbuffer = new char[256];
            int byteRead = responseStreamReader.Read(cbuffer, 0, 256);
            while (byteRead != 0)
            {
                string strResp = new string(cbuffer, 0, byteRead);
                strBuff.Append(strResp);
                byteRead = responseStreamReader.Read(cbuffer, 0, 256);
            }
        }
        return strBuff.ToString();
        }
        catch(Exception ex){
              //如何需要记录错误日志可在这里记录 或抛出异常
             return null;
        }
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值