在Heroku上托管文件

时间:2012-11-08 18:06:43

标签: ruby heroku hosts savon

我正在尝试使用Ruby / Rack应用程序和SOAP的Savon gem以及请求/响应的HTTPI gem连接到位于防火墙后面的DMZ中的SOAP API。

SOAP API定义了一个wsdl文件,该文件指向防火墙后面的内部域名(例如“http:// randomhostname / path / to / wsdl”),并且在我将ip定义为主机名时工作正常我的/ etc / hosts文件在我的机器上本地(1.1.1.1 randomhostname)。

我遇到的问题是我的应用程序的生产环境在Heroku上运行。 如何将我尝试连接的服务器的外部ip映射到Heroku或我的应用程序中wsdl中定义的主机名?

1 个答案:

答案 0 :(得分:0)

不要使用WSDL。直接调用函数。像这样:

#!ruby

require 'savon'

stock_handle = ARGV[0] || 'OTEX'

client = Savon::Client.new do
  wsdl.endpoint = 'http://www.webservicex.net/stockquote.asmx'
  wsdl.namespace = 'http://www.webserviceX.NET/'
end

response = client.request :wsdl, 'GetQuote' do
  http.headers["SOAPAction"] = '"http://www.webserviceX.NET/GetQuote"'
  soap.body = { "symbol" => stock_handle }
end

print response