2011-05-03 36 views
0

我需要从ROR控制器调用一些PHP脚本,所以我试图使用开放(“网址”),但它没有奏效。
例如,在红宝石控制器打开网址

def successful_login 
    open("http://stackoverflow.com") 
    redirect_to home_url 
end 

变量Errno :: EINVAL在UsersController#创建
无效的参数 - http://stackoverflow.com

任何想法?

+0

貌似忘记需要开放-URI:'需要 '开放-URI';打开(的“http: // host /')。阅读' – taro 2011-05-03 10:06:54

回答

1
require 'net/http' 
Net::HTTP.get('www.example.com', '/index.html') 

The API docs

+0

哦,thx!似乎它更接近解决方案,但我有另一个错误(绝对无法识别):Errno :: ECONNRESET(????????? ???? ??????????????? ????????????? ?????????。): – Alex 2011-05-03 09:59:00

+0

打开控制台/终端并加载irb。然后输入'require'net/http'。和'Net :: HTTP.get('www.google.com','/ intl/en/about /')'没有引号。看看它是否给你任何输出。如果是这样,它可以正常工作。你想要打什么网址?你可以用浏览器打开它吗? – thekindofme 2011-05-03 10:06:30

+0

现在,当我打电话给本地主机的网址。尽管事实上,它并不适用于外部URL,但我可以在浏览器中打开它。看起来是开发环境问题。非常感谢! – Alex 2011-05-03 10:55:36

0

需要的净/ HTTP' 需要 'URI'

url = URI.parse('http://www.example.com/index.html') 
res = Net::HTTP.start(url.host, url.port) {|http| 
    http.get('/index.html') 
} 
puts res.body