记录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; } }
复制代码

 本文转自Rt-张雪飞博客园博客,原文链接http://www.cnblogs.com/mszhangxuefei/p/worknotes-11.html如需转载请自行联系原作者


张雪飞

相关文章
域对象共享数据model、modelAndView、map、mapModel、request。从源码角度分析
这篇文章详细解释了在IntelliJ IDEA中如何使用Mute Breakpoints功能来快速跳过程序中的后续断点,并展示了如何一键清空所有设置的断点。
域对象共享数据model、modelAndView、map、mapModel、request。从源码角度分析
|
应用服务中间件 数据安全/隐私保护
session 生命周期和经典案例-防止非法进入管理页面
session 生命周期和经典案例-防止非法进入管理页面
151 0
|
SQL 安全 前端开发
案例07-在线人员列表逻辑混乱-ThreadLocal、继承、索引失效
案例07-在线人员列表逻辑混乱-ThreadLocal、继承、索引失效
|
Java 编译器 C++
C++ :类 和 对象 ※重点※(三)
C++ :类 和 对象 ※重点※(三)
84 0
|
编译器 C++
C++ :类 和 对象 ※重点※(一)
C++ :类 和 对象 ※重点※
50 0
|
编译器 C++
C++ :类 和 对象 ※重点※(二)
C++ :类 和 对象 ※重点※(二)
76 0
SpringMVC学习(五):向request域对象共享数据的五种方法
SpringMVC学习(五):向request域对象共享数据的五种方法
141 0
SpringMVC学习(五):向request域对象共享数据的五种方法
|
测试技术
接口测试平台插播: 同名字段请求体-其他涉及代码
我们上节课,成功的把单接口调试的底层请求代码中form-data等格式的请求体从字典转变为了多元元组,实现了同名字段的正常请求。本节就来搞定首页请求/用例请求/异常测试/登陆态的底层代码。
接口测试平台插播: 同名字段请求体-其他涉及代码
|
JSON 前端开发 中间件
|
Java API Android开发
java之用反射实现方法(已知实体对象和实体参数)
java之用反射实现方法(已知实体对象和实体参数)
137 0