Python request.post到php服务器

时间:2015-08-05 05:40:40

标签: php python json

这个问题的不同变种垃圾谷歌,但我找不到特定于我的需求的解决方案。我试图从运行python的客户端发送一个JSON字符串到使用PHP的Web服务器。 JSON字符串包含select查询的结果。

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

我找不到的是如何将JSON从Python脚本实际转移到PHP脚本。我正在使用Linino的Arduino YUN,并尝试了request.post(),但得到了“找不到模块”错误。

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

Python(帖子):

#!/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。

1 个答案:

答案 0 :(得分:0)

默认情况下,

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()