发关http get请求后台参数是数组类型时,你可以使用方括号 []
来表示参数是一个数组。这通常被称为 "Query String Array" 或 "URL-encoded array"。下面是一些示例,演示了如何在URL中设置数组参数:
1使用方括号:
http://test.com/api/resource?param[]=value1¶m[]=value2¶m[]=value3
?如果是使用axios框架get时,默认会转换成这种格式。
2重复参数名
http://test.com/api/resource?param=value1¶m=value2¶m=value3
3混合使用:
http://test.com/api/resource?param=value1¶m[]=value2¶m[]=value3
允许你在数组中包含有一个值,方便动态添加多个值到数组中。
? ? ? ? ? 有些后端处理遇到url包含特殊符号时会报错:Invalid character found in the request target?,而有些后端就能处理,这与后端采用的框架所处理的数据方法用关。
在URL中,有一些字符是被允许的,而有一些字符则是被禁止的。
对于数组类型的参数,你可以使用一些URL编码方式来确保URL中的字符都是有效的。例如,使用百分号编码(percent encoding)来替代特殊字符。以下是一些可能导致问题的字符和它们的编码方式:
方括号 [
和 ]
:
[
编码为 %5B
]
编码为 %5D
在URL中,你可以将 param[]
编码为 param%5B%5D
。
其他特殊字符:
=
编码为 %3D
&
编码为 %26
%20
或 +
确保将所有非标准字符进行适当的URL编码,以避免导致请求错误。要使用内置的URL编码函数,例如 encodeURIComponent(
JavaScript)。通过使用这些函数,你可以确保URL中的参数是有效的,并且符合RFC 7230和RFC 3986的规范。
?
?