繁体   English   中英

Java的。 对Web服务的Soap请求

[英]Java. Soap request to web service

我需要通过Java发送此请求到Web服务:

> <soapenv:Envelope
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:gen="http://www.bossmedia.com/wsdl/genericportaladapter">   
> <soapenv:Header/>    <soapenv:Body>
>       <gen:GetPlayerDetails>
>          <request>
>             <systemUID>?</systemUID>
>             <sessionID>?</sessionID>
>          </request>
>       </gen:GetPlayerDetails>    
</soapenv:Body> </soapenv:Envelope>

最好的方法是将响应保存为XML文件在我的计算机上。

最好的方法是什么? 如果您发布一些有助于您的链接,我们将非常高兴。 我知道这是一个很受欢迎的问题,但是我发现的所有内容都不适合我。

JDK文档合理地告诉您如何执行此操作,但是它确实涉及跳过一些技巧,因此这里有一些示例代码可以帮助您入门。

如果要执行很多操作,则可能需要将其包装在一些实用程序类中以大大简化此过程。

注意:我不确定这段代码是否完美,但是它为您提供了Google的所有正确方法。

祝你好运!

MessageFactory messageFactory = MessageFactory.newInstance();
TransformerFactory transformerFactory = TransformerFactory.newInstance();
SOAPConnectionFactory sfc = SOAPConnectionFactory.newInstance();

Document document = null; // load your document from somewhere

// make your request message
SOAPMessage requestMessage = messageFactory.createMessage();

/// copy your message into the soap message
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(document);
DOMResult result = new DOMResult(requestMessage.getSOAPBody());
transformer.transform(source, result);

requestMessage.saveChanges();


// make the SOAP call
URL endpoint = new URL("http://example.com/endpoint");
SOAPConnection connection = sfc.createConnection();
SOAPMessage responseMessage = connection.call(requestMessage, endpoint);

// do something with the response message
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
responseMessage.writeTo(outputStream);
System.out.println(new String(outputStream.toByteArray()));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM