android
来源:互联网 发布:js隐藏元素 编辑:程序博客网 时间:2024/04/29 09:42
需求:
OkHttp的封装,方便使用
- 添加依赖
compile 'com.google.code.gson:gson:2.8.2' compile 'com.squareup.okhttp3:okhttp:3.9.1' compile 'com.github.bumptech.glide:glide:3.7.0' compile 'com.squareup.okhttp3:logging-interceptor:3.9.0' compile 'com.android.support:recyclerview-v7:26.0.0-alpha1'
- 网络权限
<!--网络请求--><uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
- 网络请求的公共参数
&source=android
Okhttp的封装 (.net文件夹中)
public class OkHttpUtils { private static OkHttpUtils okHttpUtils; private final OkHttpClient client; private OkHttpUtils() { HttpLoggingInterceptor logging = new HttpLoggingInterceptor(); logging.setLevel(HttpLoggingInterceptor.Level.BODY); client = new OkHttpClient.Builder() .addInterceptor(new MyInterceptor()) .build(); } public static OkHttpUtils getOkHttpUtils() { if (okHttpUtils == null) { synchronized (OkHttpUtils.class) { if (okHttpUtils == null) { okHttpUtils = new OkHttpUtils(); } } } return okHttpUtils; } /** * GET请求 * * @param url * @param callback */ public void doGet(String url, Callback callback) { Request request = new Request.Builder().url(url).build(); client.newCall(request).enqueue(callback); } /** * POST请求 * * @param url * @param params * @param callback */ public void doPost(String url, Map<String, String> params, Callback callback) { if (params == null) { throw new RuntimeException("参数为空了"); } FormBody.Builder builder = new FormBody.Builder(); for (Map.Entry<String, String> entry : params.entrySet()) { builder.add(entry.getKey(), entry.getValue()); } Log.e("OkHttpUtils", "请求地址:" + url + " 请求的参数:"); FormBody formBody = builder.build(); Request request = new Request.Builder().url(url).post(formBody).build(); client.newCall(request).enqueue(callback); }}
URL地址封装
public interface Api { public static String str1 = "https://www.zhaoapi.cn/product/getProductDetail"; public static String str2 = "https://www.zhaoapi.cn/product/getCarts";
接口封装
public interface OnNetListener<T> { public void onSuccess(T t); public void onFailure(Exception e);
公共参数的封装
public class MyInterceptor implements Interceptor { @Override public Response intercept(Chain chain) throws IOException { Request request = chain.request(); if (request.method().equals("GET")) { String url = request.url().url().toString(); url += "&source=android"; Request newRequset = request.newBuilder().url(url).build(); return chain.proceed(newRequset); } else { FormBody formBody = (FormBody) request.body(); FormBody.Builder builder = new FormBody.Builder(); for (int i = 0; i < formBody.size(); i++) { builder.add(formBody.name(i), formBody.value(i)); } builder.add("source", "android"); FormBody newFormBody = builder.build(); Request newRequest = request.newBuilder().url(request.url().url().toString()).post(newFormBody).build(); return chain.proceed(newRequest); } }
阅读全文
0 0
- Android
- android
- Android
- android
- android
- Android
- Android
- android
- android
- android
- Android
- Android
- android!!!
- android
- android
- android
- android
- android:
- linux用yum来将默认的仓储更换成本地163网易地址仓储
- Eclipse使用Maven创建Web时错误:Could not resolve archetype org.apache.maven.archetypes:maven-archetype-webap
- 关于ORACLE中SGA的配置
- 色温和白平衡
- 曾经我是一个只会 Excel 的数据分析师,直到我遇到了……
- android
- MyEclipse 远程调试Tomcat
- angular查询(回车)
- 用xPath查询标签
- ES基本搜索功能
- 实现在html页面加载之前执行js方法
- sstream.h的使用 以一个计算时间的程序为例子
- xml读取异常Invalid byte 1 of 1-byte UTF-8 sequence
- Mvp解耦