android - Volley 中的 API 问题

标签 android android-volley postman

我能够从 postman 发出成功的请求,但无法在android studio中使用volley发出成功的请求

以下是 postman 请求正文和 header 的屏幕截图 enter image description here

enter image description here

以下是我的截击代码

val API = "https://carenextion.org/api/v1/care_team"
val requestQueue = Volley.newRequestQueue(this@ActivityAddCareTeam)
        val stringRequest = object : StringRequest(
            Request.Method.POST,
            API,
            Response.Listener { response ->
                val json = JSONObject(response)
                Log.i("response", response)
                if (json.getBoolean("success")) {
                    Toast.makeText(this@ActivityAddCareTeam, "Care team added", Toast.LENGTH_SHORT).show()
                    finish()
                } else {
                    Toast.makeText(
                        this@ActivityAddCareTeam, "There was an error", Toast.LENGTH_LONG
                    ).show()
                }
            },
            Response.ErrorListener { error ->
                Toast.makeText(this@ActivityAddCareTeam, "There was an error", Toast.LENGTH_LONG).show()
            }) {

            override fun getParams(): MutableMap<String, String> {
                val params = HashMap<String, String>()
                params["title"] = teamName
                params["description"] = teamDescription
                params["gender"] = gender
                params["location"] = teamLocation
                params["age_range"] = ageRange
                return params
            }

            override fun getHeaders(): MutableMap<String, String> {
                val headers = HashMap<String, String>()
                headers["Authorization"] = "eyJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjo0MDA2LCJleHAiOjE1NTc2NzMyNTd9.4y87SG57cbjgh6oo8VQizZsOml-QupE4n4ywD0EUxT4"
                return headers
            }
        }
        requestQueue.add(stringRequest)

我在 postman 中收到以下回复

{
"success": true,
"user": {
    "id": 342,
    "title": "demo",
    "gender": "male",
    "description": "test desc",
    "age_range": "55-64"
},
"message": "CareTeam Added"

}

但在 Volley 中,我得到了关注

{"success":false,"error":{"code":999,"message":"undefined method `[]=' for nil:NilClass"}}

最佳答案

使用以下代码getParams()

override fun getParams(): MutableMap<String, String> {
            val params = HashMap<String, String>()
            params["care_team[title]"] = teamName
            params["care_team[description]"] = teamDescription
            params["care_team[gender]"] = gender
            params["care_team[location]"] = teamLocation
            params["care_team[age_range]"] = ageRange
            return params
        }

关于android - Volley 中的 API 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56091657/

相关文章:

java - OnClick 动态添加一个新行到 TableLayout 并从数据库中获取值将其显示在添加的行中并给出总计

java - 在android中解析并存储json响应

php - 如果行数超过 15,则 Postman 不返回 JSON

postman - 如何在Postman中上传文件

oauth - 如何在 postman 收藏中保留OAuth2 token (或使用刷新 token )?

android - 手机间隙 : how to play sound on android for a push notification

android - Android 中的支付网关集成

Android:Volley: 为什么 volley imageLoader 必须从主线程调用?

android sqlite 和正则表达式

android - 如何将多部分表单数据和图像上传到android中的服务器?