Имеется строка вида {"asdasd":"adsasd"}. Формируется данная строка с помощью символа экранирования . Имеется POST запрос, где в качестве body используется вышеуказанная строка. Проблема в том что в body почему то отображаются все символы экранирования. - {\"asdasd\":\"adsasd\"} Соответственно запрос завершается с ошибкой из за неверного формата данных. Подскажите в чем причина отображения символов экранирования и как можно это исправить?
@POST("userItem/v2/update")
Call<MyResponse> updateItems(@Query("Token") String token, @Body String item);
executeRequestWithCallback(mSyncApi.updateItems(token,itemJson.toString()), response -> {
sendMessage(response, action);
});
Проблема в том, что обычный JSON в виде строки нельзя отправлять (если я не ошибаюсь)
у вас есть 2 пути решения данной проблемы
FieldMap
@POST("userItem/v2/update")
Call<MyResponse> updateItems(
@Query("Token") String token,
@FieldMap Map<String, String> fields);
и вы заполняете fields как
Map<String, String> fields = new HashMap<>();
fields.put("asdasd", "asdasd");
и передаете в ваш POST в поле fields
Body
Для этого нужно создать класс c нужными вам полями и заполнить их
class MyPostRequestBody {
String asdasd;
.....
}
@POST("userItem/v2/update")
Call<MyResponse> updateItems(
@Query("Token") String token,
@Body MyPostRequestBody body);
Попробуйте так @Body HashMap<String, Object> body
Где ключ/значение - это {"asdasd":"adsasd"}
@POST("userItem/v2/update")
Call<MyResponse> updateItems(@Query("Token") String token, @Body HashMap<String, Object> body);
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Имеется класс, реализующий поиск ближайших мест на карте путем отправки запроса и получения результатов в jsonЗапросы отправляются и получаются...
ЗдраствуйтеНе как не могу вникнуть как отправлять изоброжения на сервер с помощью retrofit2