我想发送POST请求,内容如下:

api=1&os=android&appVersion=12345


是否有可能只带有该变量的POJO并将其传递给

@FormUrlEncoded
@POST("/sendData")
void sendData(@FieldMap MyPojo myPojo, Callback<MyResponse> callback);


使用FieldMap无效,还有其他方法吗?

最佳答案

不幸的是,这将无法立即使用。您有两种选择:


如果只有少数Pojos,则可以定义MyPojo.toFieldMap()方法来构建表单值的字段映射,并将其传递给sendData()方法。
如果您有大量的Pojo,则可以通过在项目中实现Converter接口来编写自定义的FormEncodedConverter。我认为这需要将注释和反射结合起来才能发现您的MyPojo类的公共成员。自定义转换器的示例在here中可用。

07-25 23:15