我能够从 postman 发出成功的请求,但无法在android studio中使用volley发出成功的请求
以下是 postman 请求正文和 header 的屏幕截图
以下是我的截击代码
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/