【发布时间】:2016-03-18 20:54:09
【问题描述】:
我需要使用 Heroku 的 IP 白名单访问服务,因此需要 HTTP 代理。
我配置了 Proximo 插件,并且有一个类似于 http://proxy:secret-key@proxy-0-0-0-0.proximo.io 的代理 url
在 Savon,我尝试过像这样配置代理:
client = Savon.client(wsdl: my_wsdl, proxy: "http://proxy:secret-key@proxy-0-0-0-0.proximo.io")
但是当我提出请求时:
client.operations
我收到代理错误:
Wasabi::Resolver::HTTPError: Error: 407 for url http://mywsdl
from /Users/ahamon/.gem/ruby/2.3.0/gems/wasabi3.5.0/lib/wasabi/resolver.rb:45:in `load_from_remote'
from /Users/ahamon/.gem/ruby/2.3.0/gems/wasabi3.5.0/lib/wasabi/resolver.rb:33:in `resolve'
from /Users/ahamon/.gem/ruby/2.3.0/gems/wasabi3.5.0/lib/wasabi/document.rb:142:in `xml'
from /Users/ahamon/.gem/ruby/2.3.0/gems/wasabi-3.5.0/lib/wasabi/document.rb:160:in `parse'
from /Users/ahamon/.gem/ruby/2.3.0/gems/wasabi-3.5.0/lib/wasabi/document.rb:147:in `parser'
from /Users/ahamon/.gem/ruby/2.3.0/gems/wasabi-3.5.0/lib/wasabi/document.rb:64:in `soap_actions'
from /Users/ahamon/.gem/ruby/2.3.0/gems/savon-2.11.1/lib/savon/client.rb:28:in `operations'
from (irb):7
from /Users/ahamon/.gem/ruby/2.3.0/gems/railties-4.2.4/lib/rails/commands/console.rb:110:in `start'
from /Users/ahamon/.gem/ruby/2.3.0/gems/railties-4.2.4/lib/rails/commands/console.rb:9:in `start'
from /Users/ahamon/.gem/ruby/2.3.0/gems/railties-4.2.4/lib/rails/commands/commands_tasks.rb:68:in `console'
from /Users/ahamon/.gem/ruby/2.3.0/gems/railties-4.2.4/lib/rails/commands/commands_tasks.rb:39:in `run_command!'
from /Users/ahamon/.gem/ruby/2.3.0/gems/railties-4.2.4/lib/rails/commands.rb:17:in `<top (required)>'
from bin/rails:4:in `require'
from bin/rails:4:in `<main>'
不过,如果没有代理选项,一切都可以正常工作。
【问题讨论】:
-
我认为 user:password@url 语法只在浏览器中有效。您可以尝试基本身份验证。
-
据我所知,Savon 文档没有指定如何进一步配置代理(在第 2 版中)@SteffenRoller
-
我认为是因为代理连接是底层 http 模块的一个功能,可能会有所不同。使用源,卢克!
-
我们所说的源潜水:)
-
httpclient 知道代理授权:rubydoc.info/gems/httpclient/2.1.5.2/HTTPClient/ProxyAuth。您可能需要检查应用它的代码。
标签: ruby-on-rails ruby savon proximo