导入依赖:
compile 'com.squareup.okhttp3:okhttp:3.9.0'
写拦截器
public class HttpInterceptor implements Interceptor { private static final String UA = "User-Agent"; @Override public Response intercept(Chain chain) throws IOException { Request request = chain.request() .newBuilder() .addHeader(UA, makeUA()) .build(); return chain.proceed(request); } private String makeUA() { String s = Build.BRAND + "/" + Build.MODEL + "/" + Build.VERSION.RELEASE; Log.e("myMessage", "makeUA: "+s); return Build.BRAND + "/" + Build.MODEL + "/" + Build.VERSION.RELEASE; } }
然后是请求,需要handler来更新ui
Handler handler=new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); Object o=msg.obj;//更新得到的解析后的数据 re.prosperity(o);//接口回调 } };
OkHttpClient okHttpClient=new OkHttpClient.Builder().addInterceptor(new HttpInterceptor()).build(); Request request=new Request.Builder() .url(url) .build(); okHttpClient.newCall(request).enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { } @Override public void onResponse(Call call, Response response) throws IOException { String str= response.body().string(); Object o = gson.fromJson(str,解析的bean类); Message message=handler.obtainMessage(); message.obj=o; handler.sendMessage(message); } });