Android 改造 GET @Query ArrayList

标签 android retrofit retrofit2 okhttp

我正在尝试使用一个 GET API,它期望在其查询参数中列出一个字符串数组。

我正在使用 Retrofit 完成任务。

在API接口(interface)中,我定义了以下内容:

@GET("user/explore")
Observable<User> fetchUsers(@Query("who") String who,
                                                        @Query("category") ArrayList<String> categories);

我正在使用 Timber 进行日志记录,在控制台中,我看到发出的请求如下所示:

http://192.168.2.208:3000/api/v1/user/explore?who=SOME_USER&category=SOME_CATEGORY

预期的请求应该像下面这样:

http://192.168.2.208:3000/api/v1/user/explore?who=SOME_USER&category=[SOME_CATEGORY,SOME_CATEGORY1,SOME_CATEGORY2]

尽管类别的类型是字符串数组列表,为什么改造会以这种方式事件?

最佳答案

ArrayList<String> carArrList = new ArrayList<>();
        carArrList.add("a");
        carArrList.add("b");
        carArrList.add("c");
        String[] catArr = (String[]) carArrList.toArray(new String[carArrList.size()]);
        String catStr = Arrays.toString(catArr);

        catStr = catStr.replaceAll(" ", "");
        Log.e("catStr", catStr);
        Call<User> call = apiService.fetchUsers(catStr);
        call.enqueue(new Callback<User>() {
            @Override
            public void onResponse(Call<User> call, Response<User> response) {
            }

            @Override
            public void onFailure(Call<User> call, Throwable t) {
                // Log error here since request failed
                Log.e(TAG, t.toString());
            }
        });



@GET("list/")
    Call<User> fetchUsers(@Query("category") String categories);

生成最终请求

list/?category=[a,b,c]

关于Android 改造 GET @Query ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44887212/

相关文章:

error-handling - GsonResponseBodyConverter的EOFException带有errorBody()

android - Android同时在不同的耳机上播放两首不同的歌曲

android - GCM Java 服务器示例

java - 改造:由以下原因引起:java.lang.IllegalArgumentException:无法找到 CustomClass 的调用适配器

Android Retrofit 2 自定义 JSON 请求

android - Realm 无法在新线程中执行 executeTransaction

android - 改造,通用调用类型

android - 如何定义图书馆的依存关系

android - 在 Android 4.4.2 和 4.2.2 上使用 React Native 组件时出现错误

java - Android:如何使用改造从 json 响应中获取特定字符串?