2

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

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

4

2 回答 2

0

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

我可以建议您尝试直接执行 curl 并做您想做的事情或使用包装器。

于 2012-09-26T15:11:15.557 回答
0

看起来 open-uri 不能做到这一点。但有了net/https它相当容易。

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)

可能您不需要 Rails 控制器中的“require”行。您可以使用该行指定传出 IP 地址http.local_host

于 2019-09-06T12:45:06.423 回答