如何使用Square的Retrofit对此请求进行编码

时间:2014-06-03 15:41:20

标签: java android rest retrofit

我的想法正在流淌,我无法满足以下要求:

curl --data "param1=value1&param2=value2" http://example.com/resource.cgi

with Retrofit:

我尝试的方法看起来像这样:

@FormEncoded
@POST
getResponse(@Field param1, @Field2 param2)

@POST
getResponse(@Query param1, @Query param2)

我收到可疑的错误消息,方法签名在理论上会如何看待?

2 个答案:

答案 0 :(得分:1)

首先,正确的注释是@FormUrlEncoded

然后,您需要在getResponse方法

的异步或同步响应之间进行选择

选择带字段的POST,您必须定义参数的名称。见下文。

异步调用要求您向方法

添加回调
void getResponse(@Field("param1") param1, @Field("param2") param2, Callback<YourExpectedModel>)

同步调用期望方法签名中的返回值

YourExpectedModel getResponse(@Field("param1") param1, @Field("param2") param2)

干杯

答案 1 :(得分:0)

从文档中,它应该是

@FormUrlEncoded
@POST("resource.cgi")
String getResponse(@Field("param1") String param1, @Field("param2") String param2);

请参阅http://square.github.io/retrofit/#api-declaration