springboot+swagger的Java项目里某产品发布接口因为调试问题想要重写到python项目里,语言一家亲嘛,逻辑一切顺利,但是遇到了部分参数无法解析的问题.
请求:
后台接收参数:
打印结果:
可以发现参数key;后面的参数获取不到了,因为和前端约定好字段要使用;分割,到后台再切割使用.
查阅资料发现;
属于特殊字符,postman会以为;为请求分隔结束符号,从而只能获取;前的数据参数.
但是在Swagger上测试没问题,是因为Swagger会自动对特殊字符转义.
解决办法:
一开始在header中加charset没有作用,现在的解决办法是先把包含特殊字符的参数在UrlEncode编码工具中编码再复制到Postman中就可以了.
如果只需要对;进行urlencode编码,记住%3b就行了,;url编码结果是%3b,所以请求可以直接这么写:
后台接收打印结果:
这样就解决了~