我正在研究这个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它无效。
非常感谢帮助。
答案 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;结果