为啥我们在 jsonArrayRequest 中将 jsonRequest 参数设置为 null?
Posted
技术标签:
【中文标题】为啥我们在 jsonArrayRequest 中将 jsonRequest 参数设置为 null?【英文标题】: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,它并没有真正解释太多。如果有人可以解释这一点,我将不胜感激。谢谢。
【问题讨论】:
【参考方案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 数据。
更新:
jsonRequest
在JsonArrayRequest
中属于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 将如何处理这些数据)。谢谢。 发送有效载荷 请更具体。谢谢。以上是关于为啥我们在 jsonArrayRequest 中将 jsonRequest 参数设置为 null?的主要内容,如果未能解决你的问题,请参考以下文章
为啥我们不能在 kotlin 中将类的可见性标记为“受保护”?
为啥我们在 Scikit learn 中将 X_test 存储到 y_preds 变量中? [关闭]