2014-02-10 6 views
0

Мне нужно отправить этот запрос на веб-службы с помощью Java:Java. Запрос на мыло веб-сервис

> <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-файл на моем компьютере.

Каков наилучший способ сделать это? Был бы рад, если вы разместите некоторые ссылки, которые помогут. Я знаю, что это популярный вопрос, но все, что я нашел, не работает для меня.

ответ

0

Документация 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())); 
+0

спасибо, попробую! – mark2

+0

@ mark2 как это сработает для вас? – lscoughlin

Смежные вопросы