POSTMAN работает, но android ohttp-запрос отвечает другим значением - PullRequest
0 голосов
/ 22 января 2020

Итак, я пытаюсь получить ответ от сервера. Сначала я попробовал это на почтальоне, используя эти настройки, и он РАБОТАЕТ!

enter image description here

Я использую RequestBody для формирования запроса в коде:

RequestBody body = RequestBody.create(MediaType.parse("text/plain"), "grant_type=idk&password=" + password + "&username=" + username);

Сервисный интерфейс:

@POST("v1/token")
Call<X> auth(@Body RequestBody body);

И это приведет к ошибке 400. Почему и как это исправить?

Ответы [ 2 ]

0 голосов
/ 22 января 2020

Пожалуйста, добавьте аннотацию @ UrlEncoded в Сервисный интерфейс и тело запроса вызова следующим образом: -

RequestBody body = RequestBody.Companion.create (json, JSON) Запрос запроса = новый запрос.Builder () .url (url) .post (body) .build ();

0 голосов
/ 22 января 2020

Вы передаете свои значения только в URL, даже если вы написали метод POST.

Вы должны изменить, как показано ниже:

@FormUrlEncoded
@POST("v1/token")
Call<X> auth(@Field("username") String username, @Field("password") String password);

, и вы можете позвонить, как показано ниже:

Call<X> call = retrofitInterface.auth(username, password);

Надеюсь, это сработает для вас.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...