Страницы

Поиск по вопросам

среда, 10 июля 2019 г.

Настройка Retrofit (POST запрос, Body)

Столкнулся с проблемой отправки POST запроса, работаю со Swagger Web Api. Не могу понять, какие данные ждёт сервер и как их правильно обернуть (так как посылаю правильные данные, а получаю ответ что они некорректны).
Сервер ждёт следующие данные: Я выполняю следующий код:
User mUser = new User("Android","qwerty");
JSONObject jsonObj = new JSONObject();
try { jsonObj.put("Login", mUser.getLogin()); } catch (JSONException e) { e.printStackTrace(); } try { jsonObj.put("Password", mUser.getPassword()); } catch (JSONException e) { e.printStackTrace(); }
Call mTokenResponseCall = service.getData(jsonObj);
mTokenResponseCall.enqueue(new Callback() { @Override public void onResponse(Call call, Response response) { int mStatusCode = response.code();
TokenResponse mTokenResponse = response.body();
Log.d("LoginActivity","onResponse " + mStatusCode); }
@Override public void onFailure(Call call, Throwable t) { Log.d("LoginActivity","onFailure" + t); } });
А Retrofit выглядит, так:
@Headers({ "Content-Type: application/json;charset=UTF-8"}) @POST("Api/Account/Login") Call getData(@Body JSONObject Obj);
P.S. На сервер отправляется следующая строчка {"nameValuePairs":{"Login":"Android","Password":"qwerty"}}


Ответ

Как уже писал выше, на сервер отправляется следующая строчка {"nameValuePairs":{"Login":"Android","Password":"qwerty"}}.
А сервер ожидает: {"Login":"Android","Password":"qwerty"}
Для этого используйте JsonObject из библиотеки com.google.gson.*.

Комментариев нет:

Отправить комментарий