第一步导入依赖
compile 'com.squareup.okio:okio:1.5.0' compile 'com.squareup.okhttp3:okhttp:3.2.0' compile 'com.squareup.okhttp3:logging-interceptor:3.4.1' compile 'com.google.code.gson:gson:2.8.2'
第二步,咱们导入util包,这些包网上都有
其中:GsonArrayCallback和GsonObjectCallback是封装主线程UI更新,解析对象类型(最外层{})的和数组类型(最外层[])的json串
NetWorkUtil:判断网络
Okhttp3Utils:封装网络请求的类
第三步:权限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission> <uses-permission android:name="android.permission.INTERNET"></uses-permission> 最后因为咱们使用的单例模式,我们首先要写一个类,继承Application,然后在自己的清单文件中 appliction中 配置一下
下面附带一个application的例子
public class MyApp extends Application { public static MyApp mInstance; @Override public void onCreate() { super.onCreate(); mInstance = this; } public static MyApp getInstance() { return mInstance; } }
下面就可以使用自己的util包中的内容啦,主要掌握doget(),dopost();
//doget请求的例子,其中User是解析json串的实体类
OkHttp3Utils.getInstance().doGet(mpath, new GsonObjectCallback<User>() { //请求成功 @Override public void onUi(User user) { 数据请求成功,写自己的操作,比如展示到界面 } //请求失败 @Override public void onFailed(Call call, IOException e) { } });