Android之Retrofit報錯Form-encoded method must contain at least one @Field.

lvxiangan發表於2018-08-25

今天使用retrofit的時候,介面引數寫成這樣報錯:Form-encoded method must contain at least one @Field....

@FormUrlEncoded
@POST("/appApi/client/familyInfo/insertFamilyInfo")
Observable<BaseRespModel> insertFamilyInfo (
        @QueryMap Map<String,String> paramsMap
);

經過了解,原來post請求,不能用@Query 或@QueryMap 引數,必須要使用@FieldMap,改成這樣:

@FormUrlEncoded
@POST("/appApi/client/familyInfo/insertFamilyInfo")
Observable<BaseRespModel> insertFamilyInfo (
        @FieldMap Map<String,String> paramsMap
);

總結:

retrofit使用get請求,少引數使用@Query 註解,多引數使用@QueryMap;

使用post請求,少引數使用@Field 註解,多引數使用@FieldMap。

相關文章