HttpClient调用接口,应当返回307却返回200问题

这段时间对接外部接口,需要做个跳转,按照对接方的阐述,调用接口后,跳转的url会放在返回的response header中Location中,状态码为307。在对接中,我却永远得到了是200的返回!

最初我是使用HttpClient去调用接口的,可是无论怎么调用都是200,返回的页面也与预期不符合,我以为是包的问题,我换成了java原生的HttpURLConnection去调用,依然是200。

然后我尝试用postman去调了一次接口,返回200
一样的参数,对接方也用postman掉了一次接口,返回307
我迷惑了

突然对方提醒了一句,你postman是不是没关闭自动重定向?
我以前没遇到过这状况啊,赶紧找谷歌百度老师一顿问
原来postman是会自动重定向的,对于我这个需求,需要在Settings中关闭自动重定向
在这里插入图片描述
再次请求,ok了
看着这个乌龙,我愣了一会,突然恍然大悟,那么HttpClient和HttpURLConnection是不是默认自动重定向的呢?

一顿操作,我依然用的是HttpClient,找到了设置是否自动重定向的配置

RequestConfig requestConfig = RequestConfig.custom()
                    .setRedirectsEnabled(false).build();
CloseableHttpClient httpClient = HttpClientBuilder.create().build();
HttpGet httpGet = new HttpGet(url);
httpGet.setConfig(requestConfig);                   

再次请求,正常返回307了!!!!

尴尬
通过这次尴尬经历,我只能说,我真正用到的知识体系沧海一粟啊

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值