我正在将带有json数据的http发布请求发送到服务器。当我在服务器凌空上返回状态码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上的共享代码已过时,无法正常工作。
尝试将Response.Listener<JSONObject>
更改为Response.Listener<String>
,通常应该成功。
您应检查201的响应是否处于JSON模式而不是纯文本。您可以张贴您收到的JSON响应吗?
如果您希望您的201请求获得成功,则至少应放置一个json,如:
{
"message": "The item was created successfully"
}