【问题标题】:How to add multiple of the same/array parameter using Retrofit?如何使用 Retrofit 添加多个相同/数组参数?
【发布时间】:2014-03-20 09:54:23
【问题描述】:

我有一个实例,我需要将多个相同的命名参数传递给服务器(数据数组)。

改变它是不可能的。

http://test.com?test[]=1&test[]=2&test[]=3

如何使用 RetroFit 完成此任务?我看到您可以传递值映射,但这无济于事,因为键都是相同的。

任何帮助都会很棒...真的希望有一个干净的方法/解决方法,否则我将需要使用另一个 api lib 并进行项目重构。

【问题讨论】:

  • 您使用的是改造 1.4.+ 吗?看起来数组已添加到字段中,但我还没有尝试过。 * New: @Field now accepts List or arrays for multiple values.* New: @Query and @EncodedQuery now accept List or arrays for multiple values.
  • 你是对的。几个小时前发现的。如果您提出答案,我会将其标记为解决方案。
  • 我不会说这很奇怪。 html 复选框和选择多个控件都会像这样对表单进行编码。

标签: android retrofit


【解决方案1】:

从 1.4.0 开始的改造增加了将数组或列表作为 @Field@Query 参数发送的功能。

New: @Query and @EncodedQuery now accept List or arrays for multiple values.
New: @Field now accepts List or arrays for multiple values.

【讨论】:

  • 源码中的相关行可以在这里找到:github.com/square/retrofit/pull/377/…
  • 知道如何解决 Multipart 中 Part 参数的类似问题吗?
  • 我想知道它们是如何编码的?我会看看上面提到的拉取请求。
【解决方案2】:

我正在使用retrofit:1.9.0,http://test.com?test[]=1&test[]=2&test[]=3 的一种方式是这样的

void test(@Query("test[]") ArrayList<String> values);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多