Python的请求.Post到PHP服务器


Python request.post to php server

这个问题的不同变体充斥着谷歌,但我没有找到一个特定于我需要的解决方案。我试图发送JSON字符串从客户端运行python到使用PHP的web服务器。JSON字符串包含一个选择查询的结果。

我发现了很多关于如何在python中生成JSON以及如何通过服务器的页面从服务器数据库发布数据给用户的示例和教程。

我没有找到的是如何实际将JSON从Python脚本传输到PHP脚本。我正在使用Arduino YUN与Linino,并尝试了request.post(),但得到一个"模块未找到"错误。

一个简单的英语解释如何在两个设备之间进行数据传递将大有帮助!任何关于一个好的资源的建议,实际上显示了我所描述的一个例子,也将是伟大的。

Python (Post):

#!/usr/bin/python
import requests
import json
url = 'http://xxx.xxx.x.xxx/reciever.php'
payload = {"device":"gabriel","data_type":"data","zone":1,"sample":4,"count":0,"time_stamp":"00:00"}
headers = {'content-type': 'application/json'}
response = requests.post(url, data=json.dumps(payload), headers=headers)
PHP(接收方):

<?php
print_r(json_decode($_POST['payload']));
?>

也许有一个完全不同的方式,是更好地张贴从客户端到服务器的选择查询?客户端将有动态IP和服务器将基于web。

requests默认不安装在Python中。您需要首先通过pip或其他包管理器获得它:

pip install requests

在那之后,你可以使用它。

也有库,那是内置在:urllib2。例子:

import urllib
import urllib2
url = 'http://xxx.xxx.x.xxx/reciever.php'
payload = {"device":"gabriel","data_type":"data","zone":1,"sample":4,"count":0,"time_stamp":"00:00"}
headers = {'content-type': 'application/json'}    
data = urllib.urlencode(payload)
req = urllib2.Request(url, data, headers)
response = urllib2.urlopen(req)
the_page = response.read()