【问题标题】:Retrofit2: Adding Token Params(@Query) in Retrofit POST RequestRetrofit2:在 Retrofit POST 请求中添加令牌参数(@Query)
【发布时间】:2020-09-10 08:55:54
【问题描述】:
我正在将 Retrofit2 用于移动应用。我正在与之交互的 API 需要将令牌放入参数中才能发出有效请求。像这样:
我想发出一个 POST 请求,我可以在其中将该令牌集成到参数中。
我尝试使用@Query 但没有成功,Retrofit 文档仅在@GET 请求中进行了演示。关于如何实现这一目标的任何想法?
【问题讨论】:
标签:
java
android
android-studio
httprequest
retrofit2
【解决方案1】:
我的问题只是输入错误。这行得通。 @Query 直接在 POST 请求中将我传递的令牌直接放入参数中就好了。
【解决方案2】:
当您需要动态添加路径值时使用@Path
@FormUrlEncoded
@POST("users/{token}")
Call<AgentResponse> agentCreateUse(
@Path("token") String token);
...
)
并删除@Query
- form-urlencoded:POST
- 查询参数:GET
使用表单 urlencoded 请求将数据发送到服务器或 API。数据在请求正文中发送,而不是作为 url 参数。
在使用特定字段或过滤器从 API 或服务器请求数据时使用查询参数。
【解决方案3】:
在 POST 请求中使用 @Field 而不是 @Query