1

尝试实现与 TestRail API(http://docs.gurock.com/testrail-api2/accessing)交互的自定义​​解决方案,我有点陷入以下情况:

Api 调用是这样进行的:/index.php?/api/v2/get_case/1,这意味着在任何东西之后“ ”是一个查询字符串参数。有没有办法用 Retrofit 来参数化它?

如果我做这样的事情:

@GET("index.php?/api/v2/get_case/{id}")
Call<TestCase> getTestCase(@Query("id") int id);

我得到这个例外:

java.lang.IllegalArgumentException: URL query string "/api/v2/get_case/{id}" must not have replace block. For dynamic query parameters use @Query.

明白了......但是我怎样才能进一步使用改造?

4

1 回答 1

0

通过拦截器解决了这个问题

Request currentRequest = chain.request();
String finalURL = currentRequest.url().toString().replace("index.php/", "index.php?/");

Request.Builder request = currentRequest.newBuilder()
        .addHeader("Authorization", authToken)
        .addHeader("Content-Type", ContentType.JSON.toString())
        .url(finalURL);
于 2019-12-06T14:57:04.373 回答