使用SOAP,与REST一样,我是否可以安全地假设客户端调用Web服务的所有内容都将一些XML发布到端点URL?如果是这种情况,那么是否需要使用像Axis这样的工具或wsimport从WSDL生成客户端存根类?对于SOAP,我们是否需要从WSDL生成客户端存根?
跳过这一步并且只是自己构建原始XML并执行整个SOAP信封的HTTP Post是否有任何问题?
这是我想要在groovy中做的事情。
def myXml = "<soapenv:Envelope>" +
" <soapenv:Body>" +
" <myservice:invoke>" +
" <username xsi:type=\"xsd:string\">$username</username>" +
" <apiKey xsi:type=\"xsd:string\">$apiKey</apiKey>" +
" </myservice:invoke>" +
" </soapenv:Body></soapenv:Envelope>"
HttpMethod method = new PostMethod('https://myservice.javaguy.com/Service.asmx')
method.setRequestEntity(new StringRequestEntity(myXml))
method.setRequestHeader('Content-type','text/xml')
def responseCode = httpClient.executeMethod(method)
是的,可以使用手动方法,但由于冗长和容易出错,不推荐使用。 – ACV