Модернизация тела необработанной строки POSTAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Модернизация тела необработанной строки POST

Сообщение Anonymous »

Я использую Retrofit для отправки запроса POST на сервер. Тело POST должно быть в форме jdata={"key1":"value1",... вместе с заголовком Content-Type, установленным в application/x-www-form-urlencoded. Я нашел похожий вопрос, но принятый ответ не работает.

Вот что я пробовал:

Мой интерфейс

Код: Выделить всё

public interface APIHandler {
@Headers("Content-Type: application/x-www-form-urlencoded")
@FormUrlEncoded
@POST(URL)
Call getdata(@Field("jdata") String jdata);
}
Вызов функции

Код: Выделить всё

public void load() {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("BASE_URL")
.addConverterFactory(GsonConverterFactory.create())
.build();

// prepare call in Retrofit 2.0
APIHandler iAPI = retrofit.create(APIHandler.class);

String requestBody = "{\"id\":\"value\",\"id1\":\"value2\"}"
Call call = iAPI.getData(requestBody);

call.enqueue(new Callback() {
@Override
public void onResponse(Call c, Response response) {
if (response.isSuccess()) {
ResponseBody result = response.body();
String gs = new Gson().toJson(result);
Log.d("MainActivity", "response = " + gs + " status: " + statusCode);

} else {
Log.w("myApp", "Failed");
}
}

@Override
public void onFailure(Call c, Throwable t) {
}
});
}
Но я получаю ответ = null и статус = 200. Что я делаю неправильно? Ожидаемый ответ — это строка, а не массив JSON.

Подробнее здесь: https://stackoverflow.com/questions/358 ... tring-body
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»