【发布时间】:2013-12-21 06:09:21
【问题描述】:
这听起来可能有点奇怪,但我需要这样发生是有原因的。
我需要 python 能够将数据发布到 linux 服务器上的本地 PHP 文件,然后从 PHP 获得响应。
我试过这个:
p = subprocess.Popen("curl --data 'param1=value1¶m2=value2' /home/hbmukwm/temp/receive.php", shell=True, stdout=subprocess.PIPE)
reply = p.stdout.read()
但是当我这样做时,因为它是一个本地文件,我得到了这个 curl 错误:curl: (3) malformed
我也尝试过这种方式(在 stackoverflow 答案中找到)
mydata=[('one','1'),('two','2')]
mydata=urllib.urlencode(mydata)
path='file:/home/hbmukwm/temp/receive.php'
req=urllib2.Request(path, mydata)
req.add_header("Content-type", "application/x-www-form-urlencoded")
reply=urllib2.urlopen(req).read()
但在这种情况下,我得到的 php 响应是纯文本,就像我只是想读取 PHP 文件一样,我再次认为这是因为 PHP 文件是本地的,就像这样:
<?php echo "test"; ?>
不仅仅是
test
希望到目前为止这是有道理的。我需要做的就是将数据POST到本地PHP文件,然后将PHP响应返回给python...这可能吗...
任何回复都非常感谢,对不起我的无知!
【问题讨论】:
-
您需要将您的 php 代码托管在一些网络服务器(Apache)上才能获得请求的响应。
-
您不能发布到文件。您 POST 到 Web 服务器,它会代表您调用该文件。