0
我正在使用retrofit2
與webapi交流。 我需要設置動態beacuase用戶可以改變它的WebAPI的URL,所以我用了@Url
註解像這樣指定它:將@Path和@Url參數與retrofit2結合使用
@POST
Call<LoginResponse> login(@Url String url, @Body LoginRequest user);
在操作中的一個,我需要發送一些路徑參數到服務器,所以我這樣做:
@GET
Call<DataResponse> getOrder(@Url String url,
@Header(WEBAPI_EMAIL_HEDER) String email,
@Header(WEBAPI_TOKEN_ID_HEDER) String token,
@Path("id") int id);
當我打電話的操作getOrder(...)
,作爲例外retrofit
惜售因爲我不是suppoused在相同的操作使用@Url
和@Path
參數。
這是例外:
java.lang.IllegalArgumentException: @Path parameters may not be used with @Url. (parameter #4)
一種解決方法是更換URL中的id參數,並在invokation只使用@Url
參數。但我認爲這不是最好的方法,因爲我會在@Path
參數的所有操作中完成此操作。
還有其他更清潔的解決方案嗎?也許使用另一個retrofit2
註釋?
在此先感謝。
如果您希望使用Path註解,則必須配置翻新以使用端點URL。在上面的例子中,翻新將不知道在哪裏放置id,因爲它沒有在GET描述中定義 – AgileNinja
我用這個url參數值調用:「http://webapi.example.com/v1/orders/{id }以.json」。所以,url有定義的id參數。 – Pablo