Android Kotlin – Volley Неожиданный код ответа 500

Я создал REST API с Django Rest Framework. В настоящее время я работаю над мобильным приложением для своего сайта. Когда я делаю запрос POST (это мой второй запрос POST в моем приложении), я получаю эту ошибку:

E / Volley: [385] BasicNetwork.performRequest: неожиданный код ответа 500 для http://laude.ct8.pl/api/user/data/aktualizacja/

Вот мой код:

private val UPDATE_URL = "http://laude.ct8.pl/api/user/data/aktualizacja/" private var volleyRequest: RequestQueue? = null private val jsonObj = JSONObject() volleyRequest = Volley.newRequestQueue(this) private fun aktualizacja() { jsonObj.put("librus_user", usernameEdit.text) jsonObj.put("librus_pswd", passwordEdit.text) val req = JsonObjectRequest(Request.Method.POST, UPDATE_URL, jsonObj, Response.Listener { response -> Toast.makeText(this, response.toString(), Toast.LENGTH_LONG).show() val user = Intent(this, UserActivity::class.java) startActivity(user) }, Response.ErrorListener { error -> Toast.makeText(this, error.toString(), Toast.LENGTH_LONG).show() }) req.retryPolicy = DefaultRetryPolicy(60000, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT) volleyRequest!!.add(req) } 

Когда я использую те же данные на своем веб-сайте, я не получаю никаких ошибок, я получил его только в мобильном приложении. Спасибо за помощь !

Ошибка сервера вызвана тем, что вы JsonObjectRequest и передаете JsonObject как совокупность параметров, в то время как ваш сервер требует их в качестве Strings ( я заметил ссылку! ). Быстрое исправление – использовать StringRequest и передать ваши параметры как String as! Проверьте код ниже, чтобы получить представление!

 private val UPDATE_URL = "http://laude.ct8.pl/api/user/data/aktualizacja/" private var volleyRequest: RequestQueue? = null volleyRequest = Volley.newRequestQueue(this) private fun aktualizacja() { val req = object : StringRequest(Request.Method.POST, UPDATE_URL, Response.Listener { response -> Toast.makeText(this, response, Toast.LENGTH_LONG).show() val user = Intent(this, UserActivity::class.java) startActivity(user) }, Response.ErrorListener { e -> Toast.makeText(this, error.toString(), Toast.LENGTH_LONG).show() }) { public override fun getParams(): Map<String, String> { val params = HashMap<String, String>() params.put("username", usernameEdit.text) params.put("password", passwordEdit.text) return params } } req.retryPolicy = DefaultRetryPolicy(60000, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT) volleyRequest!!.add(req) } 

Вы также должны учесть, что ответ также является String поэтому, если вам нужно, чтобы JSONOject конвертировал его.

Извините, если вы можете получить какие-либо ошибки в коде! Я написал код на Java и конвертирую в Kotlin с помощью Android Studio! Надеюсь, вы получите общую идею!

Intereting Posts
Как добавить пользовательские группы просмотра в Anko DSL? Расширение класса данных Kotlin для использования с JPA? SpringBoot ArrayIndexOutOfBoundsException MethodParameter.getGenericParameterType Для функции Kotlin, используемой в качестве выражения, существует ли краткий способ работы и возврата значения? Kotlin & Hibernate IllegalArgumentException: Не удается установить поле Строка Job.name для задания Как использовать VectorDrawable в Android <selector> Почему публичный класс не может распространять частный класс? данных и открытой несовместимости, какая у меня альтернатива? Может ли кто-нибудь здесь подробно описать структуру проекта приложения «Котлин / Родник»? Кроме того, особенности работы различных модулей Почему в Kotlin нет ключевых слов параллелизма? Android: получить DAO в ViewModel Как Lazy Инициализировать с параметром в Kotlin Как передать интерфейс в моем адаптере Kotlin RecylerView и получить обратный вызов в деятельности Kotlin Преобразовать тип с нулевым значением в его тип, не содержащий NULL? Kotlin AlarmManager и BroadcastReceiver не работают