当前位置:  开发笔记 > Android > 正文

如何从Volley中的JSONObject获取String响应

如何解决《如何从Volley中的JSONObject获取String响应》经验,为你挑选了1个好方法。

我已经使用volley创建了JSONRequest,它成功点击了服务,我检查了服务端,它接收了数据,然后发送"Success"作为回报.

问题在于,服务String在输出中返回,而Volley JSON Data在输出中除外.所以它执行onErrorMethod而不是onResponse.

请指导我如何使其接受字符串响应,或者在您JSONObject作为请求使用时不可能.

    Request jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, "http://192.168.0.101:8888/api/services/mytest",
            jsonParent, new Response.Listener() {
        @Override
        public void onResponse(JSONObject response) {
            Log.d("Success", response.toString());
            deleteFile();
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Log.d("Error", error.toString());
            deleteFile();
        }

    RequestQueue requestQueue = Volley.newRequestQueue(getApplicationContext());
    requestQueue.add(jsonObjectRequest);

Nayan Srivas.. 11

您可以使用StringRequest而不是JSONRequest.

StringRequest stringRequest = new StringRequest(methodType, url,
                    new Response.Listener() {
                        @Override
                        public void onResponse(String response) {

                        }
                    }, new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {

                }
            }){
                @Override
                public Map getHeaders() throws AuthFailureError {
                    return headers == null ? super.getHeaders() : headers;
                }

                @Override
                public byte[] getBody() throws AuthFailureError {
                    return "Your JSON body".toString().getBytes();
                }
            };

getheaders方法是添加自定义标头,如果您想要和getBody提供request body.



1> Nayan Srivas..:

您可以使用StringRequest而不是JSONRequest.

StringRequest stringRequest = new StringRequest(methodType, url,
                    new Response.Listener() {
                        @Override
                        public void onResponse(String response) {

                        }
                    }, new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {

                }
            }){
                @Override
                public Map getHeaders() throws AuthFailureError {
                    return headers == null ? super.getHeaders() : headers;
                }

                @Override
                public byte[] getBody() throws AuthFailureError {
                    return "Your JSON body".toString().getBytes();
                }
            };

getheaders方法是添加自定义标头,如果您想要和getBody提供request body.

推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有