尝试实现与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.
知道了...但是我该如何使用翻新进一步进行?
答案 0 :(得分: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);