OkHttp、rxJava、Retrofit联合网络请求(一)

本文详细介绍了如何使用OkHttp、RxJava和Retrofit进行网络请求,包括简单的GET和POST请求,文件上传,以及OkHttp的高级配置如拦截器的使用。文中给出了完整的代码示例,包括创建OkHttpClient对象、构建请求和响应的回调,以及GET、POST请求的实现。此外,还讲解了文件上传的步骤,特别是如何配置RequestBody进行文件上传,以及如何使用拦截器添加公共请求参数和处理重定向。
摘要由CSDN通过智能技术生成

Connection →Keep-Alive
Content-Length →227
Content-Type →text/html
Date →Wed, 05 Sep 2018 03:41:58 GMT
Etag →"5b7b7f40-e3"
Last-Modified →Tue, 21 Aug 2018 02:56:00 GMT
Pragma →no-cache
Server →BWS/1.1
Set-Cookie →BD_NOT_HTTPS=1; path=/; Max-Age=300
Strict-Transport-Security →max-age=0
X-Ua-Compatible →IE=Edge,chrome=1

  1. 如果失败的话,那么就会在onFailure中把异常反馈给你!!!

给你贴下整体代码吧!

/1.创建OkHttpClient对象/
OkHttpClient httpClient = new OkHttpClient();
/2.创建请求Request内容/
Request request = new Request.Builder()
.method(“GET”, null)
.url(“https://www.baidu.com/”)
.build();
/3.发送请求/
Call call = httpClient.newCall(request);
/4.创建请求的回调/
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
Log.e(TAG, “请求失败的原因:” + e);
}

@Override
public void onResponse(Call call, final Response response) throws IOException {
Headers headers = response.headers();
Set names = headers.names();
for (String name : names) {
Log.e(TAG, “请求的header” + name);
String value = headers.get(name);
Log.e(TAG, "值为: " + value + “\n----------------------------------”);
}

final String date = response.body().string();
mHandler.post(new Runnable() {
@Override
public void run() {
mTvShow.setText(date);
}
});
}
});

以上步骤就能正常请求相应的数据了,如果还没有数据的话,好好看看代码!

1.2 简单的POST请求

关于POST请求的话,基本上就是比GET请求多一步设置表单的方法,也就是一个FormBody对象的设置,以key、value的方式设置表单而已,所以这里教你怎么写,然后我贴一下代码就那么滴了,谁让我那么懒呢!!!

表单的写法是这样的:

FormBody formBody = new FormBody.Builder()
.add(“key”, “value”)
.build();

其实add方法可以被调用多次,添加相应的key和value;

整体的代码是这样的!!!

/1.创建OkHttpClient对象/
OkHttpClient httpClient = new OkHttpClient();
/2.创建相应的表单内容/
FormBody formBody = new FormBody.Builder()
.add(“key”, “value”)
.build();
/3.创建请求Request内容/
Request request = new Request.Builder()
.url(“https://www.baidu.com/”)
.post(formBody)
.build();
/4.发送请求/
Call call = httpClient.newCall(request);
/5.创建请求的回调/
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
Lo

  • 25
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值