记录HttpWebRequest辅助类

最近因为工作关系,需要通过HttpWebRequest去请求API,所有就写了个简单的辅助public sealed classHttpRequestHelper

复制代码

    {
        private static string USER_AGENT = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 Safari/537.36";
        private static string ACCEPT = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8";
        private static string CONTENT_TYPE = "application/x-www-form-urlencoded; encoding=UTF-8";

        /// <summary>
        /// 单例
        /// </summary>
        private static volatile HttpRequestHelper instance;
        private static object syncRoot = new object();
        private HttpRequestHelper() { }

        public static HttpRequestHelper Instance
        {
            get
            {
                if (instance == null)
                {
                    lock (syncRoot)
                    {
                        if (instance == null)
                        {
                            instance = new HttpRequestHelper();
                        }
                    }
                }

                return instance;
            }
        }

        /// <summary>
        /// Get请求
        /// </summary>
        /// <param name="queryString">url参数</param>
        /// <returns>json格式结果</returns>
        public string Get(string URL)
        {
            string ret = string.Empty;
            URL = URL.Replace("ACCESS_TOKEN", WxTokenHelper.Instance.Token);
            var request = CreateRequest("GET", URL);
            var response = request.GetResponse();
            Stream responseStream = response.GetResponseStream();
            StreamReader readStream = new StreamReader(responseStream, Encoding.UTF8);
            ret = readStream.ReadToEnd();
            readStream.Close();
            return ret;
        }

        public string GetToken(string URL)
        {
            string ret = string.Empty;
            var request = CreateRequest("GET", URL);
            var response = request.GetResponse();
            Stream responseStream = response.GetResponseStream();
            StreamReader readStream = new StreamReader(responseStream, Encoding.UTF8);
            ret = readStream.ReadToEnd();
            readStream.Close();
            return ret;
        }

        /// <summary>
        /// Post请求
        /// </summary>
        /// <param name="URL">请求的URL</param>
        /// <param name="jsonData">json格式参数</param>
        /// <returns>json格式结果</returns>
        public string Post(string URL, string jsonData)
        {
            string ret = string.Empty;
            URL = URL.Replace("ACCESS_TOKEN", WxTokenHelper.Instance.Token);
            var request = CreateRequest("POST", URL);

            if (!string.IsNullOrWhiteSpace(jsonData))
            {
                byte[] data = Encoding.UTF8.GetBytes(jsonData);
                request.ContentLength = data.Length;
                using (var requestStream = request.GetRequestStream())
                {
                    requestStream.Write(data, 0, data.Length);
                };


                var response = request.GetResponse() as HttpWebResponse;
                using (var responseStream = response.GetResponseStream())
                {
                    using (var readStream = new StreamReader(responseStream, Encoding.UTF8))
                    {
                        ret = readStream.ReadToEnd();
                    }
                }
            }

            return ret;
        }

        private HttpWebRequest CreateRequest(string method, string URL)
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL);
            request.Accept = ACCEPT;
            request.UserAgent = USER_AGENT;
            request.Method = method;
            request.ContentType = CONTENT_TYPE;
         request.Proxy = null;
            return request;
        }
    }

复制代码

如果你对编程感兴趣或者想往编程方向发展,可以关注微信公众号【筑梦编程】,大家一起交流讨论!小编也会每天定时更新既有趣又有用的编程知识!
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值