我有請求爲用戶打開的服務設置列表。動態添加無查詢參數的參數來改進請求
請求具有以下格式:
https://myserver.com/setservices?param1=val1¶m2=val2&service[10]&service[1000]&service[10000]
的服務參數列表( 「服務[10] &服務[1000] &服務[10000]」)被動態地創建,並且每個參數不具有值。使用Retrofit可以實現這個嗎?
我有請求爲用戶打開的服務設置列表。動態添加無查詢參數的參數來改進請求
請求具有以下格式:
https://myserver.com/setservices?param1=val1¶m2=val2&service[10]&service[1000]&service[10000]
的服務參數列表( 「服務[10] &服務[1000] &服務[10000]」)被動態地創建,並且每個參數不具有值。使用Retrofit可以實現這個嗎?
對於複雜的查詢參數的組合一個
Map
可以使用。
@GET("/group/{id}/users")
List<User> groupList(@Path("id") int groupId, @QueryMap Map<String, String> options);
我想這會讓你想要達到的目標。
我發現解決方法如何做到這一點。
@GET("/setservices{services_query}")
ServicesSetResponse setServices(@EncodedPath("services_query") String servicesQuery);
然後:
getService().setServices("?param1=val1¶m2=val2" + "&services[10]&services[100000]&services[1000000]")
@QueryMap不允許包含查詢參數沒有任何價值。從文檔:「值是URL編碼,null不會在URL中包含查詢參數」 – 2014-09-30 09:33:32
空字符串怎麼樣? – WojciechKo 2014-09-30 17:10:18
它會生成具有相等符號的網址: https://myserver.com/setservices?service[100]=&service[10000]=&service[10]= 但服務器很好理解。 – 2014-09-30 17:38:43