【发布时间】:2019-08-22 13:52:04
【问题描述】:
我想将一个列表 list_id=[11111,2222,3333] 附加到 url,它应该如下所示
http://1abc/spm//lookup/ids/xyz?list_id=[11111,2222,3333].
最好和最简单的方法应该是什么?
【问题讨论】:
标签: java
我想将一个列表 list_id=[11111,2222,3333] 附加到 url,它应该如下所示
http://1abc/spm//lookup/ids/xyz?list_id=[11111,2222,3333].
最好和最简单的方法应该是什么?
【问题讨论】:
标签: java
a) 首先需要了解http支持多次发送同一个参数构成列表。你的案子并不新鲜。正常情况下是这样的:
xyz?list_id=11111&list_id=2222&list_id=3333
在服务器端,代码必须使用 getValues(String param) -> String[] (或他们拥有的任何 api)。
b) 如果您坚持使用专有列表格式,则必须像往常一样独立地对每个键和值进行 urlencode,这意味着 '[' 为 %5B 和 ']' 为 %5D(以及其他不安全的字符) . https://en.wikipedia.org/wiki/Percent-encoding
xyz?list_id=%5b11111%2c2222%2c3333%5d
服务器端必须 getValue(param)(通常 urldecoded 已经)并且必须进一步解析您的自定义格式(您很容易忘记 [ ],因为它们没有帮助)。
注意:我假设您不是在询问如何使用 StringBuilder.append()...lol
【讨论】:
在查询参数中发送特殊字符使用url编码。
URL 编码的 URL 如下所示。 http://1abc/spm//lookup/ids/xyz?list_id=%5B11111%2C2222%2C3333%5D
通常服务器应该处理 url 编码。
【讨论】:
这种输入数据最好用http POST类型的请求来处理。
【讨论】: