Не удается пройти аутентификацию с помощью Monzo API с помощью Volley

Я пытаюсь получить токен аутентификации от Monzo, как в разделе «Обмен кодом авторизации» в файле документы. Когда я делаю запрос с помощью httpie с терминала, у меня нет проблем, но когда я делаю запрос с помощью Volley, я получаю ответ 400. Я подтвердил, что правильно использую Volley, используя конечную точку https://postman-echo.com/post.

Выглядит ли разумным следующее использование Volley?

VolleyLog.DEBUG = true;
val jsonBody = JSONObject()

jsonBody.put("grant_type", "authorization_code")
jsonBody.put("client_id", "oauth2client_somestring")
jsonBody.put("client_secret", "mnzpub.somestring/somestring")
jsonBody.put("redirect_uri", "http://www.sample.com")
jsonBody.put("code", code)

val request = object : JsonObjectRequest(
    Method.POST, "https://api.monzo.com/oauth2/token", jsonBody,
    Response.Listener<JSONObject> {
        println("Got some response")
    },
    Response.ErrorListener {
        println("That didn't work!") }) {
    override fun getHeaders(): Map<String, String> {
        val params = HashMap<String, String>()
        params["Content-Type"] = "application/x-www-form-urlencoded; charset=utf-8"
        return params
    }
}
0
0
72
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Похоже, что API не поддерживает application/json, немного поигравшись с почтальоном. Запрос должен иметь формат application/x-www-form-urlencoded.

У меня такая же проблема (используя аксиомы в реакции). Я не уверен, что понимаю, решили ли вы это. Вам просто нужно было заменить «application/x-www-form-urlencoded» на «application/json»? Я пробовал это, но не повезло.

linuxfever 18.08.2019 19:19

Я мало что знаю об аксиомах, но мне показалось, что форма в формате json не поддерживается. Поэтому я думаю, вам нужно отправить его как application/x-www-form-urlencoded.

mm_857 18.08.2019 23:04

спасибо, ваш комментарий помог. Посмотрите здесь, если интересно: stackoverflow.com/questions/57548019/…

linuxfever 18.08.2019 23:31

Я обновил свой первоначальный ответ, так как он был написан неоднозначно. Рад, что у вас все заработало!

mm_857 19.08.2019 09:03

Другие вопросы по теме