2013-10-02 48 views
0

嗨,我有一点麻烦搞清楚我如何可以访问此Web服务:http://www.webservicex.net/CurrencyConvertor.asmx?WSDL如何将GroovySOAP客户端代码转换为groovy-wslite?

使用常规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 library

任何帮助是极大的赞赏。

回答

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() 
+0

啊,这太棒了!感谢您的转换并让我知道该工具! –

相关问题