No es lo mas recomendable ni lo mas refactorizable, escalable, etc. Pero quiza si es lo mas rapido.
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.net.Socket; import javax.net.ssl.SSLSocketFactory; import sun.misc.BASE64Encoder; public class SendSMS_Soap { public static void main(String[] args) { try { String driver = "DRIVER-DATA; String number = "NUMER-DATA"; String login = "USER:PASS"; String aut = (new BASE64Encoder().encodeBuffer(login.getBytes())).trim(); String mensaje = "Probando envio de SMS con SOAP.."; // ******************* Construimos el XML ******************* String xmldata = //"<?xml version="1.0" encoding="UTF-8"?>"+ "<soap:Envelope " + "xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" " + // "xmlns:xsd="http://www.w3.org/2001/XMLSchema" " + // "xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"" + ">"+ "<soap:Body>"+ "<ns2:OPERACION xmlns:ns2="http://www.dominio.es/ruta/schemas">"+ "<Version>1.0</Version>"+ "<Authorization>"+aut+"</Authorization>"+ "<Sender>"+driver+"</Sender>"+ "<Recipients>" + "<To>"+number+"</To>" + "</Recipients>"+ "<SMSText>"+mensaje+"</SMSText>"+ "</ns2:OPERACION>"+ "</soap:Body>"+ "</soap:Envelope>"; System.out.println("Mensaje a enviar: " + xmldata); // ******************* Creamos el Socket ******************* System.setProperty("javax.net.ssl.trustStore", "trustStore.jks"); SSLSocketFactory ssf = (SSLSocketFactory) SSLSocketFactory.getDefault(); Socket s = ssf.createSocket(SERVIDOR, PUERTO); OutputStream outs = s.getOutputStream(); InputStream ins = s.getInputStream(); // ******************* Enviamos la cabecera ******************* BufferedWriter wr = new BufferedWriter(new OutputStreamWriter(outs,"UTF-8")); wr.write("POST /RUTA HTTP/1.1rn"); wr.write("Content-Type: text/xml; charset=utf-8rn"); wr.write("Accept: */*rn"); //wr.write("Authorization: Basic "+aut+"rn"); wr.write("User-Agent: Java/1.7rn"); wr.write("Host: https://SERVIDOR:PUERTO/RUTA" + "rn"); wr.write("Cache-Control: no-cachern"); wr.write("Pragma: no-cachern"); wr.write("SOAPAction: ''rn"); wr.write("Connection: keep-alivern"); wr.write("Content-Length: " + xmldata.length() + "rn"); wr.write("rn"); // ******************* Enviamos el XML ******************* wr.write(xmldata); wr.flush(); // ******************* Esperamos respuesta y la sacamos por pantalla ******************* BufferedReader rd = new BufferedReader(new InputStreamReader(ins)); String line; while((line = rd.readLine()) != null){ System.out.println(line); } } catch (Exception e) { System.err.println(e.getMessage()); } } }