android - 如何在 Volley 中从 JSONObject 获取字符串响应

标签 android android-layout httprequest android-volley android-json

我使用 volley 创建了 JSONRequest,它成功命中了服务,我检查了服务端,它接收到数据,并返回“成功”。

问题在于,Service在输出中返回String,而Volley在输出中排除了一些JSON Data。所以它执行 onError 方法,而不是 onResponse

请指导我如何让它接受字符串响应,或者当您使用 JSONObject 作为请求时它是不可能的。

    Request<JSONObject> jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, "http://192.168.0.101:8888/api/services/mytest",
            jsonParent, new Response.Listener<JSONObject>() {
        @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);

最佳答案

您可以使用 StringRequest 而不是 JSONRequest。

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

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

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

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

getheaders 方法是根据需要添加自定义 header 和 getBody 以提供 请求正文

关于android - 如何在 Volley 中从 JSONObject 获取字符串响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41870844/

相关文章:

java - 为什么当我尝试进行家庭 Activity 时应用程序崩溃

android - Android 上的 OCR 扫描问题

android - 适合 2 个 TextView

http - 是不是所有场景都可以用POST代替GET呢?

c - C 套接字中通过 HTTP 的 SOAP 消息

asp.net - 在 IIS 7.5 上的 session 模块上挂起的请求

android - 应用程序在收到广播时自动打开

android - 在Android应用程序中录制来自外部源的音频

隐藏在底部栏下方的Android float 操作栏

android - 如何为线性布局元素设置 setLayoutParams