【问题标题】:Why do we set the jsonRequest parameter to null in jsonArrayRequest?为什么我们在 jsonArrayRequest 中将 jsonRequest 参数设置为 null?
【发布时间】:2021-07-26 07:42:13
【问题描述】:

我正在编写一个简单的 JSONArrayRequest。这是我的 JSONArrayRequest:

JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(Request.Method.GET, url, null, new Response.Listener<JSONArray>() {
            @Override
            public void onResponse(JSONArray response) {

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

            }
        });

我对为什么我们将 JsonArrayRequest 中的 jsonRequest 参数设置为 null 感到困惑。我找到的唯一文档是:https://developer.android.com/training/volley/request,它并没有真正解释太多。如果有人可以解释这一点,我将不胜感激。谢谢。

【问题讨论】:

    标签: android arrays json android-studio


    【解决方案1】:

    正如documentation所说,JsonArrayRequest的参数是:

    method - 要使用的 HTTP 方法

    url - 从中​​获取 JSON 的 URL

    jsonRequest - 与请求一起发布的 JSONArray。 Null 表示不会随请求一起发布参数

    listener - 接收 JSON 响应的侦听器

    errorListener - 错误侦听器,或 null 忽略错误

    因此,您传递的 null 值是用于与请求一起发布的参数,如果您没有要传递的内容,则可以为 null。

    【讨论】:

    • 您好,谢谢您的回答!但是,与请求一起发布究竟意味着什么?谢谢。
    • 您实际上是将信息传递给服务器以配合您的请求,如果您只是发出一个简单的请求,通常不需要这样做。
    【解决方案2】:

    jsonRequest 顾名思义,请求中的 json 表示您想要传递到服务器的有效负载。

    GET:是用于从服务器获取一些信息的 HTTP 方法类型,在这种情况下,我们通常不必将任何有效负载传递给服务器,因此 jsonRequest 为 null在这种情况下,意味着您的 API 请求中的正文将为空。

    POST/PUT:是用于在服务器上创建/更新信息的 HTTP 方法类型,在这种情况下,我们必须将任何有效负载传递给服务器,因此 jsonRequest 是非空的在这种情况下,主体将是我们将在您的 API 请求中作为 jsonRequest 传递的 json 数据。

    更新:

    jsonRequestJsonArrayRequest 中属于JSONArray 类型,因此您可以将您的arraylist 转换为jsonarray 并传递它。

    ArrayList<String> list = new ArrayList<String>();
    list.add("hello");
    list.add("CodingChap");
    JSONArray jsonArray = new JSONArray(list);
    

    【讨论】:

    • 谢谢!那么根据我们在方法参数中传递的内容,我们对 jsonRequest 参数使用 null 还是非 null 呢?另外,您能否举一个将 jsonRequest 设置为 ArrayList 的用例示例?谢谢!
    • @CodingChap 请查看答案的更新部分
    • 另外,还有一件事。在 JsonArrayRequest 中将数据作为 jsonRequest 发送的用例是什么?(即 JsonArrayRequest 将如何处理这些数据)。谢谢。
    • 发送有效载荷
    • 请更具体。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2021-07-28
    • 2014-04-02
    • 1970-01-01
    • 2014-11-23
    • 1970-01-01
    • 1970-01-01
    • 2015-11-21
    • 1970-01-01
    相关资源
    最近更新 更多