一般与后台交互数据,网络请求都是异步为主,很少用到同步处理。最近有一个需求需要用到同步处理,故尝试用了OkHttp同步请求数据。
->首先依赖okHttp
//okHttp
compile 'com.squareup.okhttp3:okhttp:3.3.1'
->在manifest.xnl添加网络权限
<uses-permission android:name="android.permission.INTERNET"/>
->下面是主要实现的代码逻辑
//创建OkHttpClient()对象
client = new OkHttpClient();
//创建一个网络请求
Request request = new Request.Builder()
.url(adsUrl)
.build();
Call call = client.newCall(request);
try {
//同步请求
response = call.execute();
//同步返回的数据。我这里返回就是一个String字段,所以不需要json解析
codeVersion = response.body().string();
Log.e("tag","codeVersion:"+codeVersion);
} catch (IOException e1) {
e1.printStackTrace();
}finally {
//最后不管有没有成功,都要把OkHttpClient关闭。
if (client != null){
client.dispatcher().cancelAll();
}
}