【问题标题】:Add queryparam OKHttp3添加查询参数 OKHttp3
【发布时间】:2018-07-29 13:33:21
【问题描述】:

我正在向我的 API 发出 GET 请求,并且 cURL 看起来像:

curl -X GET "http://www.example.com/api/users?role=ROLE1&role=ROLE2&role=ROLE3&pag=0&num=0" -H "accept: application/json"

我尝试从我的 Android 应用程序发出如下请求,但“addQueryParameter”没有附加角色

public void getActors(String[] roles, final ApiManager.Callback<List<UsersDetails>> callbackUsers) throws JSONException{
      final String url = BuildConfig.BASE_AUTH_URL + "/users";

      HttpUrl.Builder httpBuilder = HttpUrl.parse(url).newBuilder();
      httpBuilder.addQueryParameter("roles", "ROLE1");
      httpBuilder.addQueryParameter("roles", "ROLE2");
      httpBuilder.addQueryParameter("roles", "ROLE3");
      httpBuilder.addQueryParameter("pag", "0");
      httpBuilder.addQueryParameter("num", "0");


      Request request = new Request.Builder()
              .url(httpBuilder.build())
              .addHeader("Content-type", "application/json")
              .get()
              .build();
...

编辑:进行此更改的代码有效,但我从服务器得到一个空值。

每个 GET 中的角色总是相同的。 有人可以帮我理解我在哪里出错了吗?

【问题讨论】:

    标签: android api get okhttp3


    【解决方案1】:

    您可以尝试okHttpBuilder 和尽可能多的人。

    FormBody.Builder builder = new FormBody.Builder();
    for (String m : list) {
        builder.add("roles", m);
    }
    

    然后像这样使用它

    url.post(body.build());
    

    httpBuilder.addQueryParameter("roles"+[0], "ROLE1");
    httpBuilder.addQueryParameter("roles"+[1], "ROLE1");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-15
      • 1970-01-01
      • 2019-05-30
      • 2010-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多