Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP对Flask端点的请求_Php_Python_Curl_Python Requests_Werkzeug - Fatal编程技术网

PHP对Flask端点的请求

PHP对Flask端点的请求,php,python,curl,python-requests,werkzeug,Php,Python,Curl,Python Requests,Werkzeug,我正在flask上构建一个python端点(我对它还很陌生)。我正在从PHP向它发送请求(因为这是我们大多数用户用来发送请求的方式)。我有一个应该发送的非关联数据数组(即类似于'mode'=>数组('foo','bar','baz')) 然而,在烧瓶中执行str(request.form)时,我得到的只是ImmutableMultiDict([('mode[1],'foo'),('mode[0],'bar'),('mode[2],'baz')) 现在,通过查看stackoverflow(例如),

我正在flask上构建一个python端点(我对它还很陌生)。我正在从PHP向它发送请求(因为这是我们大多数用户用来发送请求的方式)。我有一个应该发送的非关联数据数组(即类似于
'mode'=>数组('foo','bar','baz')

然而,在烧瓶中执行
str(request.form)
时,我得到的只是
ImmutableMultiDict([('mode[1],'foo'),('mode[0],'bar'),('mode[2],'baz'))

现在,通过查看stackoverflow(例如),我发现了这一点,这表明我应该能够执行类似于
request.form.getlist('mode[])
(带或不带方括号-取决于您在这里看到的问题)。然而,两者都不起作用

最终,我找到了一个临时解决方案,如果在将数据放入curl post字段之前对数据进行json编码(即执行json编码(数组('foo'、'bar'、'baz')),那么通过Flask(
ImmutableMultiDict([('mode'、'['foo'、'bar'、'baz')))
)似乎可以很好地接收数据

但是我真的不明白为什么这个解决方案有效——我是幸运地发现它的,而不是任何有根据的猜测。谁能解释一下为什么这个解决方案有效,或者是否有更好的(TM)解决方案

提前感谢!

您可以:

request.form.values()

这样,您将只从dict对中获取作为数组的值。您不需要将数据编码和解码为JSON就可以读取值。

对不起,我应该在请求中更清楚地说明这一点。这不是整个post请求。Mode是我提交的3个数组键之一!我只是简化了问题的内容。是的,对不起,不会如果有多个键就可以工作。你尝试过这个解决方案吗?它正在使用。是的,这与我链接到的SO帖子的答案相同。但它失败了,因为我在ImmutableMultiDict对象中有数值索引的模式变量(或者至少我假设这是问题所在),因为我从getlist返回的只是一个空列表