El código de ejemplo en java, muestra con unas pocas lineas de código, el envió de un mensaje SMS.
La siguiente figura ilustra cómo funciona la aplicación de ejemplo. Los tres participantes principales son los siguientes: su aplicación Java SMS; un SMS Gateway(Servidor) y el usuario del teléfono móvil.
Como enviar un mensaje SMS en java con HTTP Request
Aplicación Java SMS: La aplicación se conecta usando HTTP para establecer la conexión con el servidor gateway SMS.
SMS Gateway: Es un servidor que le permite enviar o recibir mensajes SMS desde o hacia una red de telefonía (Claro , Movistar, Entel, etc).
Usuario de teléfono Mobile: Es el punto final donde llegara los mensajes SMS. Este es el destinatario. Puede ser su cliente, su socio comercial, un colega, un amigo o cualquier otro. Su aplicación Java usara el número de teléfono de este usuario.
Explicación del Código
Antes de comenzar el desarrollo, asegurese de contar con Eclipse IDE for Java (http://www.eclipse.org/downloads/) y Java SE Development Kit (http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)
Paso 1: Crear un nuevo proyecto
Bien, esta listo? entonces comencemos creando un nuevo proyecto Java en Eclipse:
File > New > Java Project
Definir el nombre del proyecto en la ventana que aparece (por ejemplo Java-SMS-Application-HTTP), entonces haga clic en Finish button:
Paso 2: Definir una nueva clase
Ahora necesita definir una nueva clase:
File > New > Class
En la ventana emergente, especifique la carpeta de origen haciendo clic en el botón examinar junto a esta línea. Abra el menú desplegable del nuevo proyecto Java que creó anteriormente (arriba), luego seleccione su carpeta src. De esta manera, el botón Aceptar estará activo, así que haz clic en él:
Una vez que haya realizado la selección de la carpeta de origen, debe especificar un Nombre para la nueva clase (por ejemplo, Java_sms_httprequest). Si hace clic en el botón Finalizar, se completará la creación de la nueva clase:
Ahora necesita importar los paquetes:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
Para poder implementar la aplicación SMS. En este punto, su código debería verse así:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
public class Java_sms_httprequest {
}
Ahora observe al método principal. Aquí debe especificar el número de teléfono del destinatario, el texto del mensaje SMS y el número de teléfono del remitente. Como se puede ver a continuación, también debe proporcionar las credenciales apicard y apikey de acceso al API, (Estos datos se encuentran en la pagina web ingresando con una cuenta registrada en la opcion API). Para poder enviar mensajes SMS a través de HTTP, debe proporcionar la URL del servidor SMS (requestUrl).
public static void main(String[] args) {
try {
String smsnumber = “999041400”; // numero de celular
String smstext = ” Hola mundo!”; // mensaje
String apicard = “XXXXXXXXX”; // credencial card
String apikey = “YYYYYYYYY”; // credencial key
String smstype = “0”; // parametro por defecto 0
String requestUrl = “http://api.servidor.pe/smssend”; // servidor de envios
public static void main(String[] args) {
try {
String smsnumber = "955041469"; // numero de celular
String smstext = " Hola mundo!"; // mensaje
String apicard = "XXXXXXXXX"; // credencial card
String apikey = "YYYYYYYYY"; // credencial key
String smstype = "0"; // parametro por defecto 0
String requestUrl = "http://api.servidor.pe/smssend"; // servidor de envios
// Preparando la cadena POST de envio
String postData = "apicard=" + URLEncoder.encode(apicard, "UTF-8");
postData = postData+"&apikey=" + URLEncoder.encode(apikey, "UTF-8");
postData = postData+"&smsnumber=" + URLEncoder.encode(smsnumber, "UTF-8");
postData = postData+"&smstext=" + URLEncoder.encode(smstext, "UTF-8");
postData = postData+"&smstype=" + URLEncoder.encode(smstype, "UTF-8");
URL url = new URL(requestUrl);
// Conectando al servidor
HttpURLConnection uc = (HttpURLConnection)url.openConnection();
uc.setDoOutput(true);
uc.setRequestMethod("POST");
uc.setRequestProperty( "Content-Type", "application/x-www-form-urlencoded" );
uc.setRequestProperty( "Content-Length", String.valueOf(postData.length()));
OutputStream os = uc.getOutputStream();
os.write(postData.getBytes("UTF-8"));
// Capturar respuesta del servidor
BufferedReader in = new BufferedReader(new InputStreamReader(uc.getInputStream(), "UTF-8"));
String cadena;
String cadenajson="";
while(true){
cadena = in.readLine();
if(cadena==null)
break;
cadenajson= cadenajson+cadena;
}
System.out.println("Respuesta:"+cadenajson);
System.out.println(uc.getResponseMessage());
uc.disconnect();
} catch(Exception ex) {
System.out.println(ex.getMessage());
}
}
Conclusión:
Este ejemplo básico muestra como enviar un simple mensaje de texto. En base a este ejemplo, se puede crear las funciones mas adecuadas. Funciones que solo requieran como parámetros el numero móvil y el mensaje de texto.
Puede acceder a la información completa de la documentación del API ingresando a su cuenta de usuario en la pagina web de usuario registrado.
Contacto:
Para mas información sobre el servicio siéntase libre de contactarnos.