我有一个API端点,需要将授权代码作为请求的查询字符串发送。整个查询字符串是代码,没有参数名称和值对,因为通常就是这种情况。
我如何使用Retrofit描述这个?
我写了这个:
@GET("/Accounts/OauthLogin")
fun authenticaten(@Query('param') accessCode: String);
但我没有提交看似/Accounts/OauthLogin?param=<code>
的请求,而是想要一个只有/Accounts/OauthLogin?<code>
的请求
我该如何实现?
谢谢!
爱德华多答案 0 :(得分:0)
使用@QueryName
代替@Query
https://square.github.io/retrofit/2.x/retrofit/index.html?retrofit2/http/QueryName.html
答案 1 :(得分:0)
试试这个
@GET("order/detail.json/{ordercode}")
Call<OrderDetailModel> getOrderDetails(@Path("ordercode") String ordercode);
答案 2 :(得分:0)
Ben P的答案是正确的。通过使用@QueryName
,我们可以在没有键/值对的情况下追加查询。这是在没有替换块的情况下实现@Query
和@Path
的工作方式。
如果您想要类似 exampleapi.com/clients?string
您将要使用以下格式
正确的方式
@GET("clients")
fun getClients(@QueryName()string: String): Call<ClientsModel>
方式不正确
@GET("{string}")
fun getClients(@Query("clients")@Path("string")string: String): Call<ClientsNetworkModel>