Android|Android网络框架-OkHttp使用

1、GET请求步骤
1、引入okhttp的依赖

compile 'com.squareup.okhttp3:okhttp:3.5.0'

同步,自动会下载okhttp依赖的jar
2、在MainActivity添加doGet方法
步骤:
(1)拿到okHttpClient对象
(2)构造Request
(3)将Request封装为Call
(4)执行call
//使用okHttp访问一个网站 public void doGet(View view) throws IOException { //okHttpClient相当与一个全局的执行者(配置了请求的相关信息,执行请求的动作) OkHttpClient okHttpClient=new OkHttpClient(); //发起一个请求,因为基于构造模式,所以是Builder Request.Builder builder=new Request.Builder(); //访问url指定的网址,返回Request Request request = builder.get().url("http://www.csdn.net/").build(); //将request传入okHttpClient,访问call Call call = okHttpClient.newCall(request); //1、直接执行Response response=call.execute(); //2、异步执行,加入队列,异步得提供回调的接口 call.enqueue(new Callback() { @Override//产生错误的时候回调 public void onFailure(Call call, IOException e) { //打印错误信息 L.e("onFailure:"+e.getMessage()); e.printStackTrace(); }@Override public void onResponse(Call call, Response response) throws IOException { L.e("onResponse:"); //通过response获取相关信息,转换为String String string = response.body().string(); //打印 L.e(string); } }); }

加入网络访问权限

Android|Android网络框架-OkHttp使用
文章图片

点击GET按钮
Android|Android网络框架-OkHttp使用
文章图片

现在把信息获取在Android应用上
public void onResponse(Call call, Response response) throws IOException { L.e("onResponse:"); //通过response获取相关信息,转换为String final String string = response.body().string(); //打印 //L.e(string); runOnUiThread(new Runnable() { @Override public void run() { tv_get.setText(string); } }); }

Android|Android网络框架-OkHttp使用
文章图片

网络访问框架,设置超时时间发生错误可以去retry,这些办法一般在全局的执行者里面
2、前后端交互
【Android|Android网络框架-OkHttp使用】1、搭建服务器

    推荐阅读