你是否碰见过这样的接口?
post请求然后传输的参数都要和查询时一样以param形式传参数,那String什么的都好说,传就直接进后台了,那json呢,集合呢,是不是直接给你返400呢.
1.传json如何处理
那我们看看怎么实现,如果你要传json数据,那需要将特殊字符转义,也叫url转码,否则传不到后台接口就报400,比如,
{"userId":1,"userName":"we"}
那这里的{}就是特殊字符,将{改成%7B , 将}改成%7D,也就是如下的效果,
%7B"userId":1,"userName":"we"%7D
这样你在执行下,直接就可以了.
2.集合+json如何处理
那现在你需要传集合,集合里是json怎么办呢?网上都是说的json的解决办法, 搜url转义也没有数组符号的,那我就把如下格式的怎么传参数写出来
[{"userId":2,"userName":"xx"},{"userId":3,"userName":"xx"}]
我们看上面通俗易懂的集合+json格式的数据,那这种的就需要把[] 和{} 这种特殊的字符都要转义,上面的{}我们都说了,那[]转义是多少呢?
[ 是%5B, ] 是%5D
%5B%7B"userId":2,"userName":"xx"%7D,%7B%"userId":3,"userName":"xx"%7D%5D
// 就等于如下格式,此不要复制哈
[{},{}]
复制执行,ok,可以访问接口了
其实我很少碰见这样的情况,因为post提交请求一般都是body或者form-data,还是第一次遇到这种post请求传param的,那希望我的经历可以帮助你,
然后我也是自己摸索出来的,我把我搜索的url转义大全放到如下的链接,大家有需要看下
URL 常见转义字符参考-腾讯云开发者社区-腾讯云