您的位置:首页 > 理论基础 > 计算机网络

Android网络框架-OkHttp使用

2017-01-22 11:14 375 查看

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);
}
});
}


加入网络访问权限

4000

<uses-permission android:name="android.permission.INTERNET"></uses-permission>




点击GET按钮



现在把信息获取在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);
}
});
}




网络访问框架,设置超时时间发生错误可以去retry,这些办法一般在全局的执行者里面

2、前后端交互

1、搭建服务器
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: