当前位置: 首页 > 知识库问答 >
问题:

改装的查询链接

柯星辰
2023-03-14

第一个帖子,很抱歉如果我的术语不清楚。

因此,我使用reverfit从链接获取对象数组:base_url/todos?userid=1。使用时:

@GET("todos?userId={userId}")
Call<List<ToDoObject>> listTodos(@Query("userId") int userId);
 retrofit.Retrofit retrofit = new retrofit.Retrofit.Builder()
                .baseUrl(BASE_URL)
                .addConverterFactory(GsonConverterFactory.create())
                .build();
        BaseServiceAPI service = retrofit.create(BaseServiceAPI.class);
        Call<List<ToDoObject>> listToDos = service.listTodos(getUserId());

        listToDos.enqueue(new Callback<List<ToDoObject>>() {
            @Override
            public void onResponse(Response<List<ToDoObject>> response, retrofit.Retrofit retrofit) {
                if (response.body() != null) {
                    for (int i = 0; i < response.body().size(); i++) {
                        toDoObjectList.add(response.body().get(i));
                    }
                    toDoRecycAdapter.notifyDataSetChanged();
                }else Log.d("flow", "no go");
            }

            @Override
            public void onFailure(Throwable t) {
                Log.d("flow", "todo failure: " + t.getMessage());
            }
        });

获取此数组:

[
  {
    "completed": false,
    "dueDate": "2016-07-31 06:38:00",
    "id": 1,
    "title": "Find your son Duke",
    "userId": 1
  },
  {
    "completed": false,
    "dueDate": "2017-05-24 07:30:00",
    "id": 4,
    "title": "Rule the City ",
    "userId": 1
  },
  {
    "completed": true,
    "dueDate": "2016-1-30  1:15:00",
    "id": 6,
    "title": "Run The ",
    "userId": 1
  },
  {
    "completed": true,
    "dueDate": "2016-1-30  1:28:00",
    "id": 7,
    "title": "Hmmm",
    "userId": 1
  }
]

我收到这个错误:“致命的异常:由:java.lang.IllegalArgumentException引起:URL查询字符串”userId={userId}“不能有replace block。对于动态查询参数,请使用@query。”

我认为这是使用查询的适当情况。我甚至试过路径,但还是一无所获。我不知道有多少其他程序员可以问,我已经在这几个星期了。有人能告诉我我做错了什么吗??

共有1个答案

汤飞翮
2023-03-14

您只需在请求中保留@query参数并将其从@get中删除即可。您还说您只需要请求特定的对象,那么为什么您的响应包含列表调用 >

@GET("todos")
Call<ToDoObject> specificTodo(@Query("userId") int userId);
 类似资料:
  • 我正在使用一个查询参数来设置Google Maps API所需的值。 改装生成: 这会在需要时导致调用失败 我怎么解决这个?

  • 本文向大家介绍MySQL多表查询实例详解【链接查询、子查询等】,包括了MySQL多表查询实例详解【链接查询、子查询等】的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了MySQL多表查询。分享给大家供大家参考,具体如下: 准备工作:准备两张表,部门表(department)、员工表(employee) ps:观察两张表,发现department表中id=203部门在employee中没有对应

  • 我直接在web界面中生成了一个新的动态链接。这基本上将用于每个人,或者这是我的希望。让我们将该链接称为link.some-app.com/email-link。然后,我将其设置为指向https://some-app-123f.firebaseapp.com/__/auth/action。去第一个带我去第二个,到目前为止一切都很好。这些链接只是打开网页,而不是应用程序,也没有中间页面。 我可以用li

  • 问题内容: 是否可以为链接服务器构造一个动态查询(如果可以的话)? 例如: 问题答案: 例子 确保阅读《动态SQL的诅咒和祝福》以防止SQL注入

  • 我相信postgresql可以更快地处理我的查询,但每次修改它的尝试都会使它变慢! 我有两张桌子: < li >统计数据(id,field1,[...],field10) < li >几何图形(id,geom) 我在以下位置创建了索引: < li>statistics.id < li>geometry.id < Li > geometry(ST _ x(ST _ centroid(ST _ tra

  • 我使用的是Hyperledger Fabric V1.0,在尝试使用以下git存储库中的示例项目fabcar时遇到错误:git clone https://github.com/Hyperledger/Fabric-samples.git 我可以使用以下shell脚本启动所有容器: 创建了对等项和通道,但当我使用命令时 它会崩溃,出现以下错误:创建客户端并设置钱包位置 设置钱包路径,并将用户Pee