HttpHelper

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;

namespace xiaoy.Comm
{
    /// <summary>
    /// http get post 请求
    /// </summary>
    public class HttpHelper
    {
        static HttpHelper()
        {
            ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true;
        }
       /// <summary>
        /// post请求
        /// </summary>
        /// <param name="url">url地址</param>
        /// <param name="str">json格式的post内容</param>
        /// <returns></returns>
public static string HttpPost(string url, string str,string token="")
        {
            try
            {
                string result = "";
                HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
                req.Method = "POST";
                req.ContentType = "application/json;charset=UTF-8";
                if (!string.IsNullOrEmpty(token))
                    req.Headers.Add("access-token", token);
                byte[] data = Encoding.UTF8.GetBytes(str);//把字符串转换为字节

                req.ContentLength = data.Length; //请求长度

                using (Stream reqStream = req.GetRequestStream()) //获取
                {
                    reqStream.Write(data, 0, data.Length);//向当前流中写入字节
                    reqStream.Close(); //关闭当前流
                }

                HttpWebResponse resp = (HttpWebResponse)req.GetResponse(); //响应结果
                Stream stream = resp.GetResponseStream();
                //获取响应内容
                using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
                {
                    result = reader.ReadToEnd();
                }
                return result;
            }
            catch (Exception ex)
            {
                LogHelper.Error("HttpPost请求失败  (" + ex.Message + ")  url=" + url);
                return string.Empty;
            }
        }

        /// <summary>
        /// get请求
        /// </summary>
        /// <param name="url">url地址</param>
        /// <param name="token">access-token属性,可为空</param>
        /// <returns></returns>
public static string HttpGet(string url, string token)
        {
            try
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                request.Method = "GET";
                request.Accept = "application/json, text/plain, */*";
                if (!string.IsNullOrEmpty(token))
                    request.Headers.Add("access-token", token);
                request.UserAgent = null;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                Stream myResponseStream = response.GetResponseStream();
                string retString = "";
                using (StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.UTF8))
                {
                    retString = myStreamReader.ReadToEnd();
                    myStreamReader.Close();
                    myResponseStream.Close();
                }

                return retString;
            }
            catch (Exception ex)
            {
                LogHelper.Error("HttpGet请求失败 ("+ex.Message+") url=" + url);
                return string.Empty;
            }
        }
    }

}

 

posted @ 2020-10-21 14:43  小y  阅读(38)  评论(0)    收藏  举报