参数到底怎么传值?
先指出正确示例,再进行事情经过的叙述......
PHP与JAVA 要求 不同,PHP 允许把GET/POST的值都放在集合中,JAVA(此处用spring进行实践测试)是不允许的;
如图1:
,我说的可能不准确,不过在实践中确实是这样,也许是我做php的同事做过处理了,GET方式下不论在集合中还是拼接url,都能正确请求 ; post就没异议了,必须放在集合(HashMap)中;
而在JAVA的后端下,GET方式的传参 一定要是拼接url,如图2(图中红色斜线处是之前的错误传参了):
事情的经过
前些天得到了一个java的接口,需要调用它,很简单,传用户的token即可,但是用了volley 调用,一直是servererror服务器错误,但在PC上是没问题的,临时用xutils做了请求,正确无误,同学说框架有问题,又是超时把控不准 又是传参缺少。但是我总觉得volley 不可能这么脆弱,就用fillder 抓包;
第一次,抓volley的包:服务器返回的数据很清楚,缺少了“token”这个参数,然后又抓了volley用POST方式请求(但人家的开发文档指定的GET),这样参数是传过去了,但是后端返回的数据是不支持POST,因此可以判断文档没写错,最后我请教了一个比较厉害的大神,他一看我的图1 就指出了问题:GET不能放在集合中传参。然后他就做出了文章开头的假设 ;
这个问题总算解决了,若您还是不太明白,欢迎与我联络!