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

发起Http请求

2017-08-25 20:35 316 查看

我们应该将通用的网络操作提取到一个公共的类里,并提供一个静态的方法,当想要发起网络请求时,只需简单地调用一下这个方法即可。这里我们使用OkHttp, 毕竟这会使我们的工作更轻松

首先,我们在app/build.gradle文件中加入OkHttp库的依赖,在dependencies闭包中添加如下内容:

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


然后建立一个HttpUtil类,代码如下:

public class HttpUtil {

public static void sendOkHttpRequest(String address, Callback callback){

OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url(address)
.build();
client.newCall(request).enqueue(callback);
}
}


sendOkHttpRequest()方法中有一个Callback参数,这个是OkHttp库中自带的一个回调接口。OkHttp在enquene()方法内部帮我们开好了子线程,然后会在子线程中去执行HTTP请求,并将最终的结果回调到Callback当中。


那么我们以后在调用sendOkHttpRequest( )方法时可以这样写:

HttpUtil.sendOkHttpRequest("http://www.baidu.com", new Callback() {
@Override
public void onFailure(Call call, IOException e) {
//这里对异常进行处理
}

@Override
public void onResponse(Call call, Response response) throws IOException {
//得到服务器返回的具体内容
String responseData = response.body().string();
}
});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  网络