2012-04-03 62 views
1

我正在使用savon與soap web服務進行通信。 這一切運作良好,我現在需要得到Ruby代碼投入生產,我們必須去通過代理服務器。 該代理服務器需要認證。指定使用savonrb進行代理身份驗證

所以我的問題是,我怎麼能繼續與薩翁指定代理服務器驗證的細節?

一些進一步的信息:

我已經想通了,你可以指定一個代理服務器,例如:

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

通過對薩翁的代碼看,我發現,在該HTTP變量客戶端塊是指以下內容:

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

不幸的是,通過HTTPI :: Request的代碼,我看不到一種方法來指定真實代理本身。這裏是httpi請求的代碼:https://github.com/rubiii/httpi/blob/master/lib/httpi/request.rb

只是要清楚:我不是嘗試執行HTTP身份驗證,我試圖執行代理身份驗證。

在指定代理服務器,我收到以下錯誤,因爲我無法找到一個方法來指定代理身份驗證憑據:提前

407「代理服務器身份驗證」

感謝您的任何幫幫我。

回答

3

嘗試這種情況: http.proxy = 「HTTP://用戶名:密碼@主機:端口」

+0

順便說一句,代理可以在指定做末端塊這樣的:'代理「HTTP://...「http://savonrb.com/version2/globals.html – 2014-06-23 09:30:44

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