我最近在请求一个http地址的时候,那个地址转到了一个https上去,导致我取的数据一直是302,我研究了一下,做个记录。
以前用retrofit2.0+okHttp3.0也有这种但是重定向的也没有特别的发现就成功了,但是这次这个地址不知道后端做了什么,取到的是302。因为以前没有注意过,这里记录一下。
这里有两种方式:
第一种:
//正确方式
OkHttpClient client =new OkHttpClient()
.newBuilder()
.connectTimeout(10, TimeUnit.SECONDS)//设置连接超时时间
.writeTimeout(10, TimeUnit.SECONDS)
.readTimeout(10, TimeUnit.SECONDS)//设置读取超时时间
.build();
client.writeTimeoutMillis();
client.followRedirects();
后面的方式不变,这样就可以了。这种方式肯定是简单,但是我实验了很久用的是第二种。原因是client.followRedirects();这句话我不是单独写的,我将其放在build里面,却没有效果。
//错误方式
OkHttpClient client =new OkHttpClient()
.newBuilder()
.followRedirects(true)
.connectTimeout(10, TimeUnit.SECONDS)//设置连接超时时间
.writeTimeout(10, TimeUnit.SECONDS)