OkHttp简单封装
2016-07-04 17:04
337 查看
OkHttp简单封装
public class OkHttpUtil { public static final String CHARSET = "UTF_8"; private static OkHttpClient okHttpClient = null; private OkHttpUtil() { } private static OkHttpClient getOkHttpClient() { if (okHttpClient == null) { synchronized (OkHttpUtil.class) { if (okHttpClient == null) { okHttpClient = new OkHttpClient.Builder()//.addInterceptor() .connectTimeout(10 * 1000, TimeUnit.MILLISECONDS).readTimeout(10 * 1000, TimeUnit.MILLISECONDS) .writeTimeout(10 * 1000, TimeUnit.MILLISECONDS)//.cookieJar() .build(); } } } return okHttpClient; } private static String encodeParams(Map<String, String> params, String charser, boolean urlEncode) { StringBuilder stringBuilder = new StringBuilder(); if (params != null && !params.isEmpty()) { int i = 0; for (Map.Entry<String, String> entry : params.entrySet()) { String key = entry.getKey(); String value = entry.getValue(); if (!TextUtils.isEmpty(value) && !TextUtils.isEmpty(key)) { if (urlEncode) { try { key = URLEncoder.encode(key, charser); value = URLEncoder.encode(value, charser); stringBuilder.append(key) .append("=") .append(value); if (i != params.size() - 1) { stringBuilder.append("&"); } } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } } i++; } } return stringBuilder.toString(); } private static String encodeParams(Map<String, String> params) { return encodeParams(params, CHARSET, true); } private static Response execute(Request request) throws IOException { Request request1 = request.newBuilder().addHeader("User-Agent", "Android").build(); return getOkHttpClient().newCall(request1).execute(); } public static Response doGet(String url, Map<String, String> params) throws IOException { if (url == null) { throw new IllegalArgumentException("url can't be null"); } int index = url.lastIndexOf("?"); if (index == -1) { url = url + "?"; } else { url = url + "&"; } String encodeParams = encodeParams(params); Request request = new Request.Builde 9bea r().url(url + encodeParams).get().build(); return execute(request); } public static Response doPost(String url, RequestBody body) throws IOException { if (url == null) { throw new IllegalArgumentException("url can't be null"); } Request request = new Request.Builder().url(url).post(body).build(); return execute(request); } public static Response doPost(String url, Map<String, String> params) throws IOException { FormBody.Builder formBody = new FormBody.Builder(); if (params != null) { for (String key : params.keySet()) { String value = params.get(key); if (!TextUtils.isEmpty(value)) { formBody.add(key, value); } } } return doPost(url, formBody.build()); } public static Response doPost(String url, String contentType, File file) throws IOException { if (file == null) { throw new IllegalArgumentException("file can't be null"); } String fileName = file.getName(); fileName = fileName.substring(0, fileName.lastIndexOf(".")); MediaType mediaType = MediaType.parse(contentType); RequestBody body = RequestBody.create(mediaType, file); MultipartBody.Builder builder = new MultipartBody.Builder().setType(MultipartBody.FORM) .addFormDataPart("file", fileName, body); return doPost(url, builder.build()); } }
相关文章推荐
- servlet、genericservlet、httpservlet之间的区别
- IOS 安全网络请求--HTTPS
- http://blog.csdn.net/wuqilianga/rss/list 没有广告的页面list博文列表
- mysql-5.7.5-labs-http-documentation中文翻译-摘要
- android下载网络图片并缓存
- HTTPS原理
- libnet发包例子(tcp udp arp广播)
- TCP对SACK的处理以及乱序的处理细节
- 【NS2仿真】TCP协议
- TCP协议疑难杂症全景解析
- https_request请求接口返回数据
- CNN 卷积神经网络 二维卷积
- 读书笔记-java网络编程-4Internet-InetAddress类
- Android Volley,使用Volley加载网络图片
- Volley加载网络图片
- HTTP请求工具类
- HTTP请求返回状态码详解
- 网络编程(二)
- 读书笔记-java网络编程-4Internet地址-地址简述
- Win7下虚拟机上Linux(CentOS 64)网络配置