【问题标题】:Append to http url in java在java中附加到http url
【发布时间】:2019-08-22 13:52:04
【问题描述】:

我想将一个列表 list_id=[11111,2222,3333] 附加到 url,它应该如下所示

http://1abc/spm//lookup/ids/xyz?list_id=[11111,2222,3333].

最好和最简单的方法应该是什么?

【问题讨论】:

标签: java


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    在查询参数中发送特殊字符使用url编码。

    URL 编码的 URL 如下所示。 http://1abc/spm//lookup/ids/xyz?list_id=%5B11111%2C2222%2C3333%5D

    通常服务器应该处理 url 编码。

    【讨论】:

      【解决方案3】:

      这种输入数据最好用http POST类型的请求来处理。

      【讨论】:

      • 什么“输入数据”?列表?如果我想搜索 ID 为 1 或 2 或 3 的项目,带有这些 ID 列表的 GET 非常好。
      猜你喜欢
      • 2011-07-20
      • 1970-01-01
      • 2012-08-14
      • 1970-01-01
      • 2011-03-16
      • 2017-04-16
      • 2010-11-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多