依赖:
compile 'com.squareup.okhttp3:okhttp:3.8.1'
1.OkHttp网络请求类
public class Http {
public void getdata(String url, final NetDataCallback netDataCallback) {
//初始化一个 OkHttpClient 并且设置连接和读取超时时间
OkHttpClient okhttp = new OkHttpClient.Builder()
.connectTimeout(10, TimeUnit.SECONDS)
.readTimeout(20, TimeUnit.SECONDS)
.build();
//构造一个Request对象
Request request = new Request.Builder().url(url).build();
//通过request的对象去构造得到一个Call对象
Call call = okhttp.newCall(request);
//调用的是call.enqueue,将call加入调度队列,然后等待任务执行完成,我们在Callback中即可得到结果。
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
netDataCallback.err(500,e.getMessage());
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String s = response.body().string();
netDataCallback.callback(s);
}
});
}
}
2.定义的接口类
public interface NetDataCallback {
void callback(String str);
void err(int code,String s);
}