In the first part of this example, the SOAPMessage is created. In this case, we will call the Groups_GetList_String method, which will return a list of groups on your account. Make sure to set the SOAPAction header to indicate which method you want to call.
// create the connection SOAPConnectionFactory soapConnFactory = SOAPConnectionFactory.newInstance(); SOAPConnection connection = soapConnFactory.createConnection(); //Next, create the actual message/request MessageFactory messageFactory = MessageFactory.newInstance(); SOAPMessage message = messageFactory.createMessage(); //Create objects for the request parts SOAPPart soapPart = message.getSOAPPart(); SOAPEnvelope envelope = soapPart.getEnvelope(); SOAPBody body = envelope.getBody(); // set the SOAPAction Header to the desired request MimeHeaders headers = message.getMimeHeaders(); headers.addHeader("SOAPAction", "http://api.jangomail.com/Groups_GetList_String");Next, the message is populated with our parameters and sent to the JangoMail servers.
// Populate the body of the request // create the main element and namespace SOAPElement bodyElement = body.addChildElement( envelope.createName("Groups_GetList_String", "", "http://api.jangomail.com/")); // add the parameters bodyElement.addChildElement("Username") .addTextNode("Your JangoMail/JangoSMTP Username"); bodyElement.addChildElement("Password") .addTextNode("Your JangoMail/JangoSMTP Password"); bodyElement.addChildElement("RowDelimiter").addTextNode("\n"); bodyElement.addChildElement("ColDelimiter").addTextNode(" - "); bodyElement.addChildElement("TextQualifier").addTextNode(""); // save the message message.saveChanges(); // Send the message and print the reply // set the destination String destination = "http://api.jangomail.com/api.asmx"; // send the message SOAPMessage reply = connection.call(message, destination);Finally, the response is received and printed.
//Check the output System.out.println("\nRESPONSE:\n"); //Create the transformer TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); //Extract the content of the reply Source sourceContent = reply.getSOAPPart().getContent(); //Set the output for the transformation StreamResult result = new StreamResult(System.out); transformer.transform(sourceContent, result); System.out.println();Make sure to Download the complete source code for this example and populate it with the values from your JangoMail or JangoSMTP account.