今天使用postman做测试时发现了一个问题,我的参数传递到后台时,加号变成了空格,这让我百思不得其解,怀着学习的态度,研究了一番,最成功找到了原因。
post请求:
1.首先在postman中,如果参数是填在params模块中时,参数都是会拼接在url后面的,如下图:
然后我又了解到在url中有些特殊字符是会有特殊含义的:
最后得出结论,因为我们的参数带有特殊字符,且参数拼接到了url中, 所以特殊字符被转义了,所以参数中的加号传到后台变成了空格。
2.解决在postman中参数带特殊字符的问题:
如上图,将参数设置在body模块中的form-data中,这样参数就不会拼接到url中了,也就不会转义特殊字符了。
将参数放在x-www-form-uriencoded也不会将参数拼接到url中
2023/3/4 补充:
get请求:
一般来说post请求是将参数放到请求体中的,不会将参数拼接到url中。
如果一定要将参数拼接到url中,然后参数中存在特殊字符,那么在postman中需要对参数进编码:
双击选中需要编码的参数,出现一个Set as variable的选项,点旁边的三个点点,然后再点击Encode URL Component 就可以对参数进行编码,就会对特殊字符转义。
这里只是在postman中的转义,至于在项目中则需要前台对参数进行编码。