我想发送['1', '2', '3']
作为GET请求。
我认为在检索与POST相反的数据时(在修改/创建数据时)会使用GET请求
无法通过Google搜索如何使用GET发送字符串列表确实使我感到疑惑,是否最好在此处使用POST?
答案 0 :(得分:2)
一旦您打算执行GET
请求,就可以使用以下方法之一在查询字符串中发送数据:
if self.object.status:
do sth
else:
redirect('productlistpage')
curl -G http://example.org -d "query=1,2,3"
让我着重指出,不建议使用GET
请求中的有效负载。引用RFC 7231:
curl -G http://example.org -d "query=1&query=2&query=3"
请求消息中的有效负载没有定义的语义;在GET
请求上发送有效内容正文可能会导致某些现有的实现拒绝该请求。
还请记住,GET
请求不应用于修改资源:它们仅用于信息检索,没有副作用。话虽如此,GET
既安全又幂等。您可以在此answer中查看有关这些概念的更多详细信息。
如果必须在有效负载中发送数据(并且您打算修改资源),请坚持使用POST
。假设您的有效载荷是一个JSON文档,您将获得以下内容:
GET
答案 1 :(得分:-1)
如果要使用 curl 将其发送到正文中,则可以这样调用服务:
curl -X GET --data "['1', '2', '3']" "https://example.com/test.php"
例如,在PHP中,您可以从只读流 php:// input
中读取它<?php
$get_body = file_get_contents('php://input');
更好的方法是将数组分配给参数,例如x:
curl -X GET "https://example.com/test.php?x[]=1&x[]=2&x[]=3"
在PHP中,您将在 $ _ GET ['x'] 中以数组形式接收这些值:
<?php
print_r($_GET['x']);
输出:
Array
(
[0] => 1
[1] => 2
[2] => 3
)