程序访问一个地址时候报400错误,浏览器访问正常怎么解决
最近凯哥在调程序的时候,发现以前好好的程序,突然不能用了。于是就本地断点,发现了如下错误:
程序通过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编码的时候,指定编码的字符集
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
12月份Github上热门的JavaScript开源项目
12月份GitHub上最热门的JavaScript开源项目排行已经出炉啦,这个月JavaScript相关的开源项目不仅有古诗词数据库还有磁力搜索神器更有学习相关的算法和数据结构学习资料,一起来看看吧: 1. chinese-poetry https://github.com/chinese-poetry/chinese-poetry Star 25183 这是一个程序员自编的中华古诗词数据库,该诗词数据库包含5.5万首唐诗、26万首宋诗和2.1万首宋词。唐宋两朝近1.4万古诗人,和两宋时期1500位词人,数据均来源于互联网。 2. javascript-algorithms https://github.com/trekhleb/javascript-algorithms Star 59315 javascript-algorithms 包含了多种基于 JavaScript 的算法与数据结构,每种算法和数据结构都有自己的 README 并提供相关说明以及进一步阅读和 YouTube 视频。 3. flowy https://github.com/alyssaxuu/flowy Star...
- 下一篇
mysql使用联合索引提示字符长度超限制解决办法
mysql在创建数据库的时候,字符集设置的不是utf8而是utf9mb4,在导入sql脚本的时候,发现提示如下错误: 从上图中,我们可以看出,使用的是innodb及字符集。错误提示是长度太长了:Specified key was too long; max key length is 767 bytes 来查看下创建表的语句: CREATE TABLE `xxl_job_registry` ( `id` int(11) NOT NULL AUTO_INCREMENT, `registry_group` varchar(50) NOT NULL, `registry_key` varchar(255) NOT NULL, `registry_value` varchar(255) NOT NULL, `update_time` datetime DEFAULT NULL, PRIMARY KEY (`id`), KEY `i_g_k_v` (`registry_group`,`registry_key`,`registry_value`) ) ENGINE=InnoDB DEFAULT ...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS关闭SELinux安全模块
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Red5直播服务器,属于Java语言的直播服务器