您现在的位置是:首页 > 文章详情

程序访问一个地址时候报400错误,浏览器访问正常怎么解决

日期:2020-01-04点击:571


最近凯哥在调程序的时候,发现以前好好的程序,突然不能用了。于是就本地断点,发现了如下错误:

程序通过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编码的时候,指定编码的字符集

原文链接:https://blog.roncoo.com/article/1213449377018814465
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章