SOAP4RでHTTPPROXYの指定をする
soap4rを使ってSOAPクライアントをrailsでやる際に、HTTPプロキシを使うには
WSDLドライバーのhttpproxyメソッドを使う。
# WSDLドライバー取得 soapdriver = SOAP::WSDLDriverFactory.new(wsdlpath).create_rpc_driver # HTTPプロキシの設定 siteproxy = "http://localhost:8080" soapdriver.httpproxy=(siteproxy)
HTTPプロキシの設定を解除するにはnilをセットしてあげればいいみたい。
soapdriver.httpproxy=(nil)
Rubricksの場合はsystem設定でプロキシが指定できるんで、
その値(rubricks_configsテーブル)を取得して動作を分けるようにしてみた。
(12/10追記)rubricks_configsについては、getメソッドを使うとカレントスレッドで保持しているやつを取れるのでDBアクセスしなくて済むとのこと。
# Rubricksのconfigからproxy設定を取得 #siteproxy = RubricksConfig.find_by_name("site_proxy") siteproxy = RubricksConfig.get("site_proxy") unless siteproxy.value.blank? soapdriver.httpproxy=(siteproxy.value) else soapdriver.httpproxy=(nil) end