Android集成okhttp
16lz
2021-01-23
引入依赖
compile 'com.squareup.okhttp3:okhttp:3.9.0'
OkHttpUtils
public class OkHttpUtils { private static final OkHttpClient CLIENT = new OkHttpClient(); /** * get请求. * @param url * @param callback * */ public static void get(String url, OkHttpCallback callback) { callback.url = url; Request request = new Request.Builder().url(url).build(); CLIENT.newCall(request).enqueue(callback); } public static final MediaType JSON = MediaType.parse("application/json; charset=utf-8"); /** * post请求. * */ public static void post(String url, String json, OkHttpCallback callback) { callback.url = url; RequestBody body = RequestBody.create(JSON, json); Request request = new Request.Builder().url(url).post(body).build(); CLIENT.newCall(request).enqueue(callback); } /** * * */ public static void downFile(String url,final String saveDir, OkHttpCallback callback) { callback.url = url; Request request = new Request.Builder().url(url).build(); CLIENT.newCall(request).enqueue(callback); }}
OkHttpCallback
public class OkHttpCallback implements Callback { private final String TAG = OkHttpCallback.class.getSimpleName(); public String url; public String result; @Override public void onResponse(Call call, Response response) throws IOException { Log.d(TAG, "url: " + url); result = response.body().string().toString(); Log.d(TAG, "请求成功: " + result); onFinish("success", result); } @Override public void onFailure(Call call, IOException e) { Log.d(TAG, "url: " + url); Log.d(TAG, "请求失败:" + e.toString()); onFinish("failure", e.toString()); } public void onFinish(String status, String msg) { Log.d(TAG, "url: " + url + " status:" + status); }}
调用示例
OkHttpUtils.get(url, new OkHttpCallback(){ @Override public void onResponse(Call call, Response response) throws IOException { super.onResponse(call, response); Logger.i(result); } @Override public void onFailure(Call call, IOException e) { super.onFailure(call, e); Logger.i(e.getMessage()); } @Override public void onFinish(String status, String msg) { super.onFinish(status, msg); }});
更多相关文章
- Android实现图片缩放示例
- android布局参照示例_约束布局Android示例–第2部分
- Android Timer的用法示例
- android 传统蓝牙开发 (附示例源码)
- Android ApiDemos示例解析(5):App->Activity->Custom Title
- Android AIDL示例
- Android第二天--基于Snake的示例建立和运行程序