记录HttpWebRequest辅助类

简介: 最近因为工作关系,需要通过HttpWebRequest去请求API,所有就写了个简单的辅助public sealed class HttpRequestHelper { private static string USER_AGENT = "Mozilla/5.

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

    {
        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; } }

 

相关文章
|
11月前
|
前端开发 JavaScript Java
54dwr - 购物车案例(调用远程对象)
54dwr - 购物车案例(调用远程对象)
39 0
|
存储 安全 Java
详解java对象创建的过程
java对象是怎么从代码变成一块内存空间的呢?只看代码层面我们只是使用了new关键字加上调用构造器,就生成了一个对象,然后我们就可以使用这个对象了,那么虚拟机在这当中究竟是怎么实现这个过程的呢,在这里我们一起学习下这个过程。
195 0
详解java对象创建的过程
|
Java 开发者
反射获取类结构信息|学习笔记
快速学习反射获取类结构信息
120 0
反射获取类结构信息|学习笔记
|
存储 安全 Java
|
Java API Android开发
java之用反射实现方法(已知实体对象和实体参数)
java之用反射实现方法(已知实体对象和实体参数)
127 0
|
SQL 缓存 数据库
阐述Session加载实体对象的过程
Session加载实体对象的步骤是: ① Session在调用数据库查询功能之前,首先会在一级缓存中通过实体类型和主键进行查找,如果一级缓存查找命中且数据状态合法,则直接返回; ② 如果一级缓存没有命中,接下来Session会在当前NonExists记...
1146 0