使用savonrb指定代理身份验证

时间:2012-04-03 09:23:51

标签: ruby httpclient savon httpi

我正在使用savon与soap web服务进行通信。 一切运行良好,我现在需要将ruby代码投入生产,我们必须通过代理服务器。 此代理服务器需要身份验证

所以我的问题是,如何使用savon指定代理服务器身份验证详细信息?

进一步的信息:

我发现您可以指定代理服务器:

client = Savon::Client.new do
  ...
  http.proxy = "http://proxy.example.com"
end 

查看savon的代码,我发现客户端块中的http变量引用了以下内容:

def http
  @http ||= HTTPI::Request.new
end

不幸的是,通过HTTPI :: Request的代码,我看不到为代理本身指定身份验证的方法。以下是httpi请求的代码:https://github.com/rubiii/httpi/blob/master/lib/httpi/request.rb

请注意:我不是在尝试进行HTTP身份验证,而是在尝试执行代理身份验证。

指定代理服务器时,我收到以下错误,因为我找不到指定代理身份验证凭据的方法:

407“需要代理身份验证”

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

试试这个: http.proxy =“http:// username:password @ host:port”

答案 1 :(得分:1)

Managed to resolve it with the following code:

@proxy_path = '<insert your proxy url here>'
@wsdl_path = '<insert your wsdl url here>'

@client = Savon.client do |variable|
    variable.proxy @proxy_path
    variable.wsdl @wsdl_path
end
@client.operations #to list operations