从Ruby到PHP的POST请求。无法从PHP页面获取数据

时间:2014-12-13 14:29:03

标签: php ruby http post

我正在研究这个Ruby控制台应用程序,该应用程序应该向PHP文件发送POST请求,然后在控制台中打印出结果。问题是PHP文件的结果没有在Ruby控制台应用程序中打印出来。

这是我的Ruby代码:

require 'net/http'

data = {'command' => 'Test'}
postData = Net::HTTP.post_form(URI.parse('http://localhost/mysite/bin/app/handler.php'), data)
puts postData.body

这是我的PHP文件:

<?php
echo $_POST['command'] . ' test';
?>

但这没有任何回报。我没看到什么,这个代码有什么问题?我尝试指向一个错误的URI,它在控制台中返回了一个404 HTML页面,但是使用我正确的URI它无效。

非常感谢帮助。

1 个答案:

答案 0 :(得分:2)

您的PHP服务器出了问题。也许它没有在端口80(HTTP端口)上运行?使用PHP的内置Web服务器运行时,您的代码非常有用。即,假设PHP脚本是server.php,并且以下ruby代码放在client.rb中(注意URI中的:8000部分):

# client.rb
require 'net/http'
data = {'command' => 'Test'}
postData = Net::HTTP.post_form(URI.parse('http://localhost:8000/server.php'), data)
puts postData.body

在端口8000上运行PHP内置服务器:

cd ~/test
php -S localhost:8000

并从命令行运行ruby客户端:

ruby client.rb

产生预期的&#34;测试测试&#34;结果