Volley 对于 POST、GET 传参方式 从入坑与出坑 - 来敲代码了。 - 博客频道 - CSDN.NET

568 阅读1分钟
原文链接: blog.csdn.net

参数到底怎么传值?

先指出正确示例,再进行事情经过的叙述......

PHPJava 要求 不同,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不能放在集合中传参。然后他就做出了文章开头的假设 ;

这个问题总算解决了,若您还是不太明白,欢迎与我联络!