Android Volley JsonObjectRequest处理HTTP响应状态代码

问题描述 投票:0回答:1

我正在将带有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上的共享代码已过时,无法正常工作。

android kotlin android-volley
1个回答
-1
投票

尝试将Response.Listener<JSONObject>更改为Response.Listener<String>,通常应该成功。

您应检查201的响应是否处于JSON模式而不是纯文本。您可以张贴您收到的JSON响应吗?

如果您希望您的201请求获得成功,则至少应放置一个json,如:

{
  "message": "The item was created successfully"
}
© www.soinside.com 2019 - 2024. All rights reserved.