我想发送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中可用。