Grails 如何将GroovySOAP客户机代码转换为groovy wslite?
您好,我在确定如何访问此web服务时遇到了一些问题: 使用groovy Wslite库似乎可以很好地处理被贬低的groovy Soap库,但我不允许使用它 以下介绍了这些库: 我对groovy和这些技术都是全新的,所以请原谅我的无知 基本上我想要这个代码:Grails 如何将GroovySOAP客户机代码转换为groovy wslite?,grails,soap,groovy,Grails,Soap,Groovy,您好,我在确定如何访问此web服务时遇到了一些问题: 使用groovy Wslite库似乎可以很好地处理被贬低的groovy Soap库,但我不允许使用它 以下介绍了这些库: 我对groovy和这些技术都是全新的,所以请原谅我的无知 基本上我想要这个代码: import groovy.swing.SwingBuilder import groovy.net.soap.SoapClient proxy = new SoapClient("http://www.webservicex.net/
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库
非常感谢您提供的任何帮助。我发现使用first这样的工具来确定服务期望的请求是什么很有帮助的。从这里开始,就需要使用标记生成器来构建该请求。从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()
我发现使用像first这样的工具来确定服务所期望的请求是什么很有帮助的。从这里开始,就需要使用标记生成器来构建该请求。从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()
啊,太好了!感谢您的转换和让我了解该工具!啊,太好了!感谢您的转换和让我了解该工具!