Я пытаюсь отправить несколько параметров (как обычно) с @QueryMap
, но через POST на этот раз с использованием модификации.Параметры retrofit @POST отправляются через GET
дооснащения API
@POST("/request.php")
void sendRequest(@QueryMap Map<String, String> parameters, retrofit.Callback<RequestSendResponse> callback);
Карта, которая в настоящее время отправить
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;
}
результат сервера
{"POST":[],"GET":{"operator_name":....}}
Я могу видеть, что даже метод отправляется POST
, @QueryMap
вызывает эти параметры для отправки через GET. Даже когда я использую @Body
вместо @QueryMap
, retrofit преобразует мою @QueryMap в объект JSON, чего я не хочу.
Все, что я хочу сделать, это отправить param1=value1¶m2=value2
на моем теле запроса, вместо объекта JSON (с помощью моего Map<String, String>
)
'@ Query' или' @ QueryMap' для параметров строки запроса, вы должны использовать '@ Body' или' @ Field' для полезной нагрузки POST. – hidro
@hidro спасибо за подсказку, которая приведет меня к решению :) – Bartu
Я хочу полностью модифицировать параметры @POST –