对OkHttp进行二次封装
2016-12-13 09:16
323 查看
一个简单的OkHttp的工具类.代码如下.
package com.jinjiang.travel.util;
import android.os.Handler;
import java.io.IOException;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.FormBody;
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
/**
* OkHttp的工具类
*/
public class OkHttpUtil {
}
package com.jinjiang.travel.util;
import android.os.Handler;
import java.io.IOException;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.FormBody;
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
/**
* OkHttp的工具类
*/
public class OkHttpUtil {
private static OkHttpClient okHttpClient; private static Handler handler = new Handler(); public static void initOkHttp() { okHttpClient = new OkHttpClient.Builder() .connectTimeout(10, TimeUnit.SECONDS) .readTimeout(10, TimeUnit.SECONDS) .writeTimeout(10, TimeUnit.SECONDS) .build(); } /** * 下载json * * @param url */ public static void downJSON(final String url, final OnDownDataListener onDownDataListener) { Request request = new Request.Builder() .url(url) .build(); Call call = okHttpClient.newCall(request); call.enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { if (onDownDataListener != null) { onDownDataListener.onFailure(url, e.getMessage()); } } @Override public void onResponse(Call call, final Response response) throws IOException { final String str = response.body().string(); handler.post(new Runnable() { @Override public void run() { if (onDownDataListener != null) { onDownDataListener.onResponse(url, str); } } }); } }); } /** * 同步get请求 -- 让子类调用 * * @return */ public static Response downResponse(String url) { Request request = new Request.Builder() .url(url) .build(); Call call = okHttpClient.newCall(request); try { return call.execute(); } catch (IOException e) { e.printStackTrace(); } return null; } /** * post提交表单 */ public static void postSubmitForm(final String url, Map<String, String> params, final OnDownDataListener onDownDataListener) { if (params.size() > 0) { FormBody.Builder builder = new FormBody.Builder(); for (String key : params.keySet()) { String value = params.get(key); builder.add(key, value); } FormBody formBody = builder.build(); final Request request = new Request.Builder() .url(url) .post(formBod 4000 y) .build(); okHttpClient.newCall(request).enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { } @Override public void onResponse(Call call, final Response response) throws IOException { final String str = response.body().string(); handler.post(new Runnable() { @Override public void run() { if (onDownDataListener != null) { onDownDataListener.onResponse(url, str); } } }); } }); } } /** * post提交字符串请求 */ public static void postSubmitString(final String url, String string, final OnDownDataListener onDownDataListener) { MediaType mediatype = MediaType.parse("text/x-markdown; charset=utf-8"); Request request = new Request.Builder() .url(url) .post(RequestBody.create(mediatype, string)) .build(); Call call = okHttpClient.newCall(request); call.enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { if (onDownDataListener != null) { onDownDataListener.onFailure(url, e.getMessage()); } } @Override public void onResponse(Call call, Response response) throws IOException { final String str = response.body().string(); handler.post(new Runnable() { @Override public void run() { if (onDownDataListener != null) { onDownDataListener.onResponse(url, str); } } }); } }); } public interface OnDownDataListener { void onResponse(String url, String json); void onFailure(String url, String error); }
}
相关文章推荐
- 修改HTMLTestRunner模板,并将HtmlTestRunner进行二次封装,使报告生成的更方便
- [置顶] Retrofit和OkHttp简单的二次封装
- 对HibernateDaoSupport进行二次封装:hibernate增删改查组件
- 对HibernateDaoSupport进行二次封装:hibernate增删改查组件
- OkHttp的二次封装
- okhttp的二次封装
- 对上传图片控件uploadify进行二次封装
- RxJava2+Retrofit2+okHttp的二次封装
- 对HibernateDaoSupport进行二次封装:hibernate增删改查组件
- Android中okhttp的基本用法1的基础上进行封装
- okhttp的二次封装加入泛型
- 对FMDB进行的二次封装
- 使用OKhttp的封装类 进行本地相册或拍照的图片上传显示
- OkHttp框架二次封装,post json格式的参数(上)
- 二次封装OKHttp网络框架(1)
- okhttp的二次封装
- 关于okhttp的二次封装
- OkHttp框架二次封装,post json格式的参数(下)
- OKhttp二次封装
- 对jquery的ajax进行二次封装以及ajax缓存代理组件:AjaxCache详解