2

Ruby スクリプトを使用して SOAP URL に接続しようとしています。

このRailscasts のエピソードをフォローしています。savon gem(savon (2.4.0))をインストールしました。

次に、私のルビーファイルに次のコードがあります:

 require 'savon'

 client = Savon.client(wsdl:"https://api.comscore.com/KeyMeasures.asmx?WSDL")
 response = client.call(:authenticate , message: { username:"xxxxx", password:"xxxxx"})

 puts "#{response.inspect}"

SOAPUIを使用してそこに WSDL URL を配置し、応答が返されたため、URL に問題がないことはわかっています。

上記の ruby​​ ファイルを実行すると、次の例外が発生します。

  /Users/XXXX/.rvm/gems/ruby-2.0.0-p247/gems/wasabi-3.2.3/lib/wasabi/resolver.rb:44:in `load_from_remote': Error: 401 (Wasabi::Resolver::HTTPError)
from /Users/XXXXX/.rvm/gems/ruby-2.0.0-p247/gems/wasabi-3.2.3/lib/wasabi/resolver.rb:32:in `resolve'

グーグルで調べた後、この投稿を見ました。これは、私が行ったgem「httpclient」をインストールして必要とすることを示唆しているようです。変更はありませんが、同じエラーが引き続き発生します。

どなたか、進め方を教えていただけないでしょうか.....

ありがとう

4

1 に答える 1

5

curlコマンドラインから提供された WSDL にアクセスしようとしました。WSDL b/c にアクセスできません。権限がありません。最初に、https 要求の一部として資格情報を提供する必要があると思います。だからwasabi失敗する。WSDL ドキュメントが見つかりません。

ドキュメントによると、次のコードをクライアントの作成に挿入することで実行できます。

client = Savon.client(wsdl: ...,
                      basic_auth: [ 'username', 'password' ],
                      log: true,
                      log_level: :debug,
                      pretty_print_xml: true)
client.call(...)
于 2014-04-11T06:37:58.233 に答える