我是open-uri的新手,并试图在ruby on rails上使用open-uri设置传出的IP地址。我使用this post作为参考来开始。我正在从PHP移植应用程序,我可以在curl_setopt中使用CURLOPT_INTERFACE。使用open-uri在rails中执行此操作的最佳方法是什么? (从控制器执行此操作 - 而不是命令行。)
如果没有办法做到这一点 - 有关替代open-uri的任何建议吗?我的目标是接收并解析JSON数据。
答案 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地址。