Android Volley JsonObjectRequest Обрабатывать код состояния ответа HTTP - PullRequest
0 голосов
/ 13 апреля 2020

Я отправляю http-запрос с данными json на сервер. Когда я возвращаю код состояния 201 на сервере, залп выдает ошибку.

Я пытаюсь сделать это, отправив jsonobjectrequest на сервер, и когда я получу код состояния http 201, обработаю это при ответе. Ошибка:

 ParseError: org.json.JSONException: Value Created of type java.lang.String cannot be converted to JSONObject

Вот код:

val sendFirebaseTokenRequest = object: JsonObjectRequest(Request.Method.POST, url, tokenData,
                Response.Listener<JSONObject> { response ->

                   //this is not called since i return sendStatus(201) on server.i dont return json.






                },
                Response.ErrorListener { error ->

               //this is called because i return http status 201


                }
        )  {


            override  fun getHeaders(): MutableMap<String, String> {
                val headers = HashMap<String, String>()
                headers["Authorization"] = tokenStorage.getAccessToken()
                return headers
            }


        }

Есть некоторые похожие вопросы по stackoverflow, но все ответы устарели. Похоже, я должен переопределить что-то, но не смог управлять. Я также пытался создать несколько пользовательских классов запросов, но общий код в stackoverflow устарел и не работает.

1 Ответ

0 голосов
/ 13 апреля 2020

попробуйте изменить Response.Listener<JSONObject> на Response.Listener<String>, как правило, go будет успешным.

Вы должны проверить, находится ли ваш ответ 201 в режиме JSON, а не в виде открытого текста. Не могли бы вы опубликовать ответ JSON, который вы получаете?

Если вы хотите, чтобы ваш запрос 201 к go имел успех, вы должны как минимум поставить json, например:

{
  "message": "The item was created successfully"
}
...