1

Ruby を使用して SOAP リクエストを作成する方法に関する投稿が山ほどあることは知っていますが (通常は、gem Savon を参照しています)、それらをあまり理解できませんでした (私はプログラミングの完全な初心者です)。API に正常にアクセスし、soaupUI を使用して取得要求を実行できます。Ruby を使用してこれらの要求を実行する方法を探しています。ここに私の入力があります:

  • soap = soap リクエストの XML コード
  • POST「https://....」
  • Accept-Encoding: gzip,deflate
  • コンテンツタイプ: text/xml;charset=UTF-8
  • SOAPAction: "urn:provider/..."
  • コンテンツの長さ: 1253
  • ホスト: ウェブサービス....
  • 接続: キープアライブ
  • ユーザーエージェント: Apache-HttpClient/4.1.1 (java 1.5)

ここで、識別情報を「....」に置き換えました。これらの入力を使用して SOAP リクエストを開始する方法はありますか?

ありがとうございました!

編集済み:わかりました、次のコメントを考慮して、ここに私がアクセスしようとしている練習用 API があります。エンドポイントはhttp://www.thomas-bayer.com:80/axis2/services/BLZServiceで、soapUI から SOAP をコピーしたところ、リクエストを正常に実行できました。

require 'net/http'
require 'net/https'

http = Net::HTTP.new('thomas-bayer.com', 80)
http.use_ssl = false
path = 'axis2/services/BLZService'

data = <<-EOF
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:blz="http://thomas-bayer.com/blz/">
<soapenv:Header/>
<soapenv:Body>
<blz:blz>70070010</blz:blz>
</blz:getBank>
</soapenv:Body>
</soapenv:Envelope>
EOF

headers = {
'Referer' => 'http://www.appfusion.net',
'Content-Type' => 'text/xml',
'Host' => 'thomas-bayer.com'
}

resp, data = http.post(path, data, headers)
puts 'Code = ' + resp.code
puts 'Message = ' + resp.message
resp.each { |key, val| puts key + ' = ' + val }
puts data

実行すると、さまざまなエラーが返されます。これをトラブルシューティングするためのヘルプがあれば大歓迎です。これが役立つ場合のwsdlは次のとおりです。http://www.thomas-bayer.com/axis2/services/BLZService?wsdl

4

1 に答える 1