使用RoR在open-uri中设置传出IP地址

时间:2012-01-16 14:49:47

标签: ruby-on-rails curl open-uri

我是open-uri的新手,并试图在ruby on rails上使用open-uri设置传出的IP地址。我使用this post作为参考来开始。我正在从PHP移植应用程序,我可以在curl_setopt中使用CURLOPT_INTERFACE。使用open-uri在rails中执行此操作的最佳方法是什么? (从控制器执行此操作 - 而不是命令行。)

如果没有办法做到这一点 - 有关替代open-uri的任何建议吗?我的目标是接收并解析JSON数据。

2 个答案:

答案 0 :(得分:0)

我从您的问题中了解到,您希望从特定的IP命中另一台服务器,这表明您的服务器具有多个地址。

我建议您尝试直接执行curl并执行您想要执行的操作或使用包装器。

答案 1 :(得分:0)

看起来open-uri不能做到这一点。但是使用require 'net/https' require 'json' uri = URI('https://jsonvat.com/') http = Net::HTTP.new(uri.host, uri.port) http.local_host = '1.2.3.4' http.use_ssl = true request = Net::HTTP::Get.new('/') request.content_type = 'application/json' request.initialize_http_header('Content-Type' => 'application/json') response = http.request(request) json = JSON.parse(response.body) 相当简单。

http.local_host

可能您不需要Rails Controllers中的“ require”行。 您可以使用e.target.nextElementSibling.innerText 行来指定传出IP地址。