前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【经验】使用http访问一个链接提示400的错误,但是在浏览器访问没问题(server returned HTTP Response code :400 fro URL:),怎么解决

【经验】使用http访问一个链接提示400的错误,但是在浏览器访问没问题(server returned HTTP Response code :400 fro URL:),怎么解决

作者头像
凯哥Java
发布2022-12-15 17:05:37
4.4K0
发布2022-12-15 17:05:37
举报
文章被收录于专栏:凯哥Java凯哥Java

最近凯哥在调凯哥优惠淘公众号(领取优惠券的公众号)的时候,发现以前好好的程序,突然不能用了。于是就本地断点,发现了如下错误:

dbf0e91621733c6750112ce92f2f0102.png
dbf0e91621733c6750112ce92f2f0102.png

程序通过httpClient访问一个地址的时候,提示:server returned HTTP Response code :400 fro URL:XXXX这个错误。不对啊,以前的没问题现在怎么就突然有问题了?而且将程序访问的url地址放到浏览器中就可以正常访问的。为什么在程序中就访问不了呢?

于是就把访问的URL 复制下来,一个一个对比,发现,原来,程序访问出错的url中有中文。怀疑是不是因为中文没有进行URL编码导致【ps:最后得到的结论确实是中文没有URL编码】?

Jave中对URL进行url编码,大家都知道,就是URLEncoder.encode()这个方法。简单啊!该就是呗。于是凯哥就把整个URL进行encode.结果大家可想而知,把http://xxx 中的://也进行了encode.通过httpclient当然访问不了的。

程序

访问前的URL:xxx?name=凯哥==>结果访问失败

修改后的URL:xxx?name=URLEncoder.encode("凯哥","utf8")==>访问成功

于是凯哥就修改编码方式,只对中文部分的参数进行encode.修改之后,程序就正常访问成功了。

总结:

如果程序访问一个url出现server returned HTTP Response code :400 fro URL这个错误,但是在浏览器中访问同样的url没问题的话,就要考虑是不是因为访问的url中有特殊字符。如空格、逗号、中文等。把这些特殊字符进行url编码后在使用程序进行访问或许就能成功了。需要注意,在进行url编码的时候,指定编码的字符集

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-01-05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档