为了账号安全,请及时绑定邮箱和手机立即绑定

如何获取 Volley POST 响应正文?

如何获取 Volley POST 响应正文?

喵喵时光机 2022-06-23 20:38:25
我正在使用类似的功能来创建 GET 和 POST api 请求,但是 GET 函数将 textview 设置为响应正文,我不知道如何读取状态代码,POST 函数将 textview 设置为响应代码,我不知道如何读取响应身体。你能帮我吗?我也尝试登录 parseNetworkResponse() response.data.toString() 但这不是 api 返回的数据。也许我需要以某种方式对其进行编码?public void createGet(Context context, String url) {      final TextView apiResultTextview = (TextView) ((Activity)   context).findViewById(R.id.api_result_textview);      // Instantiate the RequestQueue.         RequestQueue queue = Volley.newRequestQueue(context);    // Request a string response from the provided URL.    StringRequest stringRequest = new StringRequest(Request.Method.GET, url,            new Response.Listener<String>() {                @Override                public void onResponse(String response) {                    // Display the first 500 characters of the response string.                    apiResultTextview.setText("Response is: " + response.substring(0, 50));                }            }, new Response.ErrorListener() {        @Override        public void onErrorResponse(VolleyError error) {            apiResultTextview.setText(error.toString());        }    });    // Add the request to the RequestQueue.    queue.add(stringRequest);}public void createPost(Context context, String url, JSONObject body) {    final TextView apiResultTextview = (TextView) ((Activity) context).findViewById(R.id.api_result_textview);    RequestQueue requestQueue = Volley.newRequestQueue(context);    final String mRequestBody = body.toString();    StringRequest stringRequest = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {        @Override        public void onResponse(String response) {            Log.i("LOG_RESPONSE", response);        }    }, new Response.ErrorListener() {        @Override        public void onErrorResponse(VolleyError error) {            Log.e("LOG_RESPONSE", error.toString());        }    }) { 
查看完整描述

2 回答

?
白衣染霜花

TA贡献1796条经验 获得超10个赞

我通过更改下面的代码调用方法来解决它。问题可能出在 JsonObjectRequest 与 StringRequest 中。这就是为什么我只得到响应代码字符串的原因。


public void createCall(int type, String url, JSONObject data, final int callback) {

    JsonObjectRequest jsonRequest = new JsonObjectRequest(type, url,data,

            new Response.Listener<JSONObject>() {

                @Override

                public void onResponse(JSONObject response) {

                    Log.d("Response", response.toString());

                    try {

                        callback(response, callback);

                    } catch (Exception e){

                        Log.d("API callback error", e.getMessage());

                    }


                }

            },

            new Response.ErrorListener() {

                @Override

                public void onErrorResponse(VolleyError error) {

                    Log.d("Error response", error.toString());

                }

            }

    );

    queue.add(jsonRequest);

}


查看完整回答
反对 回复 2022-06-23
?
冉冉说

TA贡献1877条经验 获得超1个赞

在你的 onResponse() 方法中添加这段代码


 JSONObject jsonObj = new JSONObject(response);

 String response_value = jsonObj.getString("response");


查看完整回答
反对 回复 2022-06-23
  • 2 回答
  • 0 关注
  • 105 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信