0

こんにちは、この Web サービスにアクセスする方法がわかりません: http://www.webservicex.net/CurrencyConvertor.asmx?WSDL

Groovy Wslite ライブラリを使用すると、減価償却された Groovy Soap ライブラリで問題なく動作するようですが、私はそれを使用することを許可されていません。

ライブラリについては、 Groovy Soap Useで説明されています。

Groovy-Wslite

私は groovy とこれらのテクノロジー全般にまったく慣れていないので、私の無知を許してください。

基本的に私はこのコードが欲しい:

import groovy.swing.SwingBuilder
import groovy.net.soap.SoapClient

proxy = new SoapClient("http://www.webservicex.net/CurrencyConvertor.asmx?WSDL")

def currency = ['USD', 'EUR', 'CAD', 'GBP', 'AUD']
def rate = 0.0

swing = new SwingBuilder()

refresh = swing.action(
  name:'Refresh',
  closure:this.&refreshText,
  mnemonic:'R'
)

frame = swing.frame(title:'Currency Demo') {
 panel {
         label 'Currency rate from '
         comboBox(id:'from', items:currency)
         label ' to '
         comboBox(id:'to', items:currency)
         label ' is '
         textField(id:'currency', columns:10, rate.toString())
         button(text:'Go !', action:refresh)
       }
 }
 frame.pack()
 frame.show()

 def refreshText(event) {
   rate = proxy.ConversionRate(swing.from.getSelectedItem(), swing.to.getSelectedItem())
   swing.currency.text = rate
}

groovy-wslite ライブラリで動作するように変換しましたが、何をしても動作しません。

再び Wslite ライブラリです。

wslite ライブラリ

どんな助けでも大歓迎です。

4

1 に答える 1

3

最初にsoapUIのようなツールを使用して、サービスが期待している要求を把握すると便利です。そこから、マークアップ ビルダーを使用してその要求を作成します。以下は groovyConsole から機能するはずです。

@Grab(group='com.github.groovy-wslite', module='groovy-wslite', version='0.8.0')
import wslite.soap.*

def client = new SOAPClient('http://www.webservicex.net/CurrencyConvertor.asmx')
def response = client.send(SOAPAction: 'http://www.webserviceX.NET/ConversionRate') {
    body {
        ConversionRate( xmlns: 'http://www.webserviceX.NET/') {
            FromCurrency('GBP')
            ToCurrency('USD')
        }
    }
}

assert response
assert 200 == response.httpResponse.statusCode

println response.ConversionRateResponse.ConversionRateResult.text()
于 2013-10-02T22:32:27.020 に答える