Bar*_*rtu 3 android json http retrofit
我正在尝试通过 POST 发送多个参数(就像我通常做的那样),@QueryMap但这次使用改造。
改造API
@POST("/request.php")
void sendRequest(@QueryMap Map<String, String> parameters, retrofit.Callback<RequestSendResponse> callback);
Run Code Online (Sandbox Code Playgroud)
正在发送的地图
public static Map<String, String> parametersSendRequest(Context sender, Request request)
{
Map <String, String> parameters = new HashMap<>();
Operator operator = AppConfig.config().operator;
parameters.put("user_name", request.user_name);
parameters.put("user_surname", request.user_surname);
parameters.put("user_gender", request.user_gender);
parameters.put("user_relationship", request.user_relationship);
parameters.put("user_dob", request.user_dob);
parameters.put("operator_name", operator.name);
parameters.put("request_photoid", request.request_photoid);
parameters.put("request_user_content", request.request_user_content);
parameters.put("request_title", request.request_title);
parameters.put("uuid", UUID(sender));
parameters.put("response_type", "json");
parameters.put("platform", "android");
parameters.put("mode", "send");
return parameters;
}
Run Code Online (Sandbox Code Playgroud)
服务器结果
{"POST":[],"GET":{"operator_name":....}}
Run Code Online (Sandbox Code Playgroud)
我可以看到,即使该方法被发送到POST,@QueryMap也会导致这些参数通过 GET 发送。即使当我使用@Body而不是 时@QueryMap,retrofit 也会将我的 @QueryMap 转换为 JSON 对象,这不是我想要的。
我想做的就是发送param1=value1¶m2=value2我的请求正文,而不是 JSON 对象(使用我的Map<String, String>)
@FormUrlEncoded使用 POST (和@FieldMap)发送参数
@FormUrlEncoded
@POST("/request.php")
void sendRequest(@FieldMap Map<String, String> parameters, retrofit.Callback<RequestSendResponse> callback);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5415 次 |
| 最近记录: |