2016-06-29 73 views
0

我正在嘗試使用Retrofit 2.0對移動後端進行API調用。在我的API調用,我必須做出必要調用這個URL使用&符號翻新查詢註釋

https://api.backendless.com/v1/data/Users?where=followings.objectId=%270B3BA7F9-260F-B378-FF9A-3C2448B8A700%27

爲了形成改造這個網址我一直在使用界面下方

@GET("Users?where=") 
Call<List<User>> getFollowers(@Query("followings.objectId") String objectId); 

此接口調用放查詢參數前的&符號,並生成如下的URL:

https://api.backendless.com/v1/data/Users?where=&followings.objectId=%270B3BA7F9-260F-B378-FF9A-3C2448B8A700%27

我試圖用Path註解來解決這個問題,但我總是收到「URL查詢字符串不能有替換塊」。對於使用@Query的動態查詢參數「錯誤

我嘗試連接的API需要使用」where =「子句進行過濾設計,我沒有權限更改該設置,我想要以某種方式告訴Retrofit不要查詢參數或任何變通辦法針對此問題前加上一個&符號。

任何幫助表示讚賞。

回答

0

@GET(「{}路徑」) 呼叫> getFollowers(@路徑(「路徑」)路徑,@Query(「followings.objectId」)String objectId);

getFollowers(「Users?where =」,...)

+0

您提出的解決方案不幸給了我一個不同的URL https://api.backendless.com/v1/data/Users%3Fwhere=?followings.objectId=%270B3BA7F9-260F-B378-FF9A-3C2448B8A700%27這是因爲問號正確的後面r「用戶」變爲網址編碼。我在路徑註釋中嘗試了encoded = true,但它仍將其轉換爲URL編碼 – Kemal

0

對於那些誰尋求類似的答案,我想出了以下解決方案

我宣佈我的接口@url

@GET 
Call<List<User>> getFollowers(@Url String objectId); 

,併產生相關的URL部分作爲一個擴展方法

public String toFollowerRequest(){ 
    return RestGlobals.BASE_URL + "Users?where=followings.objectId=%27" + objectId + "%27"; 
}