bug记录:httpclient-invalid query

来源:互联网 发布:美国大数据上市公司 编辑:程序博客网 时间:2024/05/16 06:32

背景

前几天做一个任务要调用别的系统的接口。系统严格要求我的请求url是utf-8编码格式的。但是我真正调用人家接口进行post请求的时候,却报错,invalid query。

过程

各种查资料以后,资料都说是请求的参数里面有编码问题。但是我自己粘出来再直接请求是能获得正常的返回值的。于是我看到了很多人强制将参数给改成utf-8的编码,在一个帖子里用了URLEncoder.enode():

String searchdqcph = "粤s.F3462";String searchcx = "G";String url = "http://www.dgsfs.net/product_search.asp?searchdqcph="+URLEncoder.encode(searchdqcph, 'utf-8')+"&searchcx="+searchcx;String htmlContent = GetHttpClint.doGet(url);

我这么写以后还是报错,就彻底没办法了。

解决

后来问同事,同事让我把请求的最终url直接粘出来贴到浏览器地址栏,请求以后又从地址栏里粘出来。才发现原来是有一个等号写成了别的编码的等号,在那个等号的地方变成了一串乱码,在eclipse里面看不太出来,但是请求的时候确报错。
这一招好好用啊,记住了~

0 0
原创粉丝点击