В недопустимом запросе отсутствует тип гранта - PullRequest
0 голосов
/ 27 марта 2019

Я делаю почтовый вызов для своей аутентификации OAUTH2 с Android, пытаюсь получить мой токен на предъявителя.

Я использую язык Kotlin и делаю запрос на публикацию с Volley.

Проблема в том, что когда я делаю мой запрос на публикацию с почтальоном, он работает идеально, но когда я делаю это таким же образом, используя сообщение Volley, мой API REST выдает: недопустимое исключение запроса, отсутствует тип предоставления.

А мой андроид кричит: Неожиданный код ответа 400 для http://192.168.1.254:8081/oauth/token

Вызов Android:

private fun loginUser() {

        var grant_type = "password"
        var username = etUsername.text.toString()
        var password = etPassword.text.toString()

        val credentials = "angularapp"+":"+"12345"

        // Post parameters
        // Form fields and values
        val params = HashMap<String,String>()
        params["grant_type"] = grant_type
        params["username"] = username
        params["password"] = password

        val jsonObject = JSONObject(params)


        val request = CustomJsonObjectRequestBasicAuth(Request.Method.POST, Network.API_URL_LOGIN,jsonObject,
            Response.Listener{ response->
                Log.d("RESPONSEEEE", response.toString())
                try {
                    // Parse the json object here
                   Log.d("Response" ,response.toString())
                    val intent = Intent(this, PatientsActivity::class.java)
                    intent.putExtra(Tags.FLOOR.toString(), ((spiFloor?.selectedItemId!!+1)))
                    startActivity(intent)
                }catch (e:Exception){
                    e.printStackTrace()

                }
            }, Response.ErrorListener{
                Log.d("ERROR", "VOLLEY ERROR")
            },credentials
        )

        // Add the volley request to request queue
        VolleySingleton.getInstance(this).addToRequestQueue(request)

    }

    // Class to make a volley json object request with basic authentication
    class CustomJsonObjectRequestBasicAuth(
        method:Int, url: String,
        jsonObject: JSONObject?,
        listener: Response.Listener<JSONObject>,
        errorListener: Response.ErrorListener,
        credentials:String
    )
        : JsonObjectRequest(method,url, jsonObject, listener, errorListener) {

        private var mCredentials:String = credentials

        @Throws(AuthFailureError::class)
        override fun getHeaders(): Map<String, String> {
            val headers = HashMap<String, String>()
            headers["Content-Type"] = "application/x-www-form-urlencoded"
            val auth = "Basic " + Base64.encodeToString(mCredentials.toByteArray(), Base64.NO_WRAP)
            headers["Authorization"] = auth
            System.out.println(headers.toString())
            return headers
        }
    }

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