android - 添加查询参数 OKHttp3

标签 android api get okhttp

我正在向我的 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 中的角色将始终相同。 有人可以帮我了解我哪里出错了吗?

最佳答案

你可以试试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");

关于android - 添加查询参数 OKHttp3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48864077/

相关文章:

安卓点亮屏幕

iphone - 我可以建立一个可以访问 iphone 相机的移动网站吗?

java - 不知道如何为这个短方法编写 Javadoc

node.js - 使用 Request 从 Node(服务器到服务器)Node/Express 中的 Restful API 获取数据

http - 将 curl url 请求转换为 JMeter 脚本

安卓绘图/图形

android - 具有动态宽度的布局 View

android - 将支持库添加到 Android 项目

java - 在 android while 循环中使用 URL get 发送数据

python - BitTorrent 客户端 : Getting Peer List From Trackers [Python]