如何将查询字符串放入Retrofit 2

时间:2016-11-17 10:47:02

标签: java android curl retrofit2

您好我需要在Android中的Retrofit 2中实现这个CURL代码:

curl_setopt($ch, CURLOPT_POSTFIELDS, "username=myname&password=mypass");

我像这样使用了Retrofit:

Call<ResponseBody> login(@Query("username") String username, @Query("password") String password);

但目标API只接受帖子数据为"username=myname&password=mypass"之类的字符串,而不是不同的参数。 如何使用Retrofit 2实现上面的CURL代码?

2 个答案:

答案 0 :(得分:0)

使用@Field而不是@query并在Call方法的开头添加@FormUrlEncoded

答案 1 :(得分:0)

可能可以帮助遇到同样问题的人。
使用 @QueryName 可以放置查询字符串。

Call<ResponseBody> login(@QueryName String queryString);

可能需要替换一些字符并添加Interceptor
参考: https://github.com/square/retrofit/issues/1199#issuecomment-307176224