<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Programacion en JAVA &#187; sms</title>
	<atom:link href="http://www.programacionenjava.com/blog/tag/sms/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.programacionenjava.com</link>
	<description></description>
	<lastBuildDate>Mon, 05 Dec 2011 15:06:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Enviar sms desde una aplicación Java</title>
		<link>http://www.programacionenjava.com/blog/2009/03/03/articulos/enviar-sms-desde-una-aplicacion-java/</link>
		<comments>http://www.programacionenjava.com/blog/2009/03/03/articulos/enviar-sms-desde-una-aplicacion-java/#comments</comments>
		<pubDate>Tue, 03 Mar 2009 08:50:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[envio de sms]]></category>
		<category><![CDATA[sms]]></category>

		<guid isPermaLink="false">http://www.programacionenjava.com/?p=56</guid>
		<description><![CDATA[En esta entrada os mostraremos cómo enviar sms desde una aplicación Java. Seguro que esta funcionalidad os la ha pedido algún cliente que quería integrar directamente en vuestra aplicación la posibilidad de enviar un sms en alguna situación como comunicarse con sus propios clientes, enviar una alerta en determinadas ocasiones, etc&#8230; Lo primero es encontrar [...]]]></description>
			<content:encoded><![CDATA[<p>En esta entrada os mostraremos cómo <strong>enviar sms desde una aplicación Java</strong>. Seguro que esta funcionalidad os la ha pedido algún cliente que quería <strong>integrar</strong> directamente en vuestra aplicación la posibilidad de enviar un sms en alguna situación como comunicarse con sus propios clientes, enviar una alerta en determinadas ocasiones, etc&#8230;</p>
<p>Lo primero es encontrar un proveedor que permita el envío de sms mediante una conexión a su servidor. Puede que existan aún aquellas páginas donde era gratuito enviar un sms. Sin embargo la fiabilidad de entrega de estos proveedores, unido a que sólo permiten enviar a través de una página web y no desde un programa java y que suelen estár asociados al envío de publicidad no hacen de esta solución una solución aceptable.</p>
<p>Un <strong>proveedor</strong> de sms sirve de intermediario entre nuestra aplicación Java y los operadores de telefonía móvil. La misión del programa Java será por tanto conectarse de algún modo al proveedor elegido (HTTP, SMTP&#8230;) y pasarle los datos del sms en algún formato (con los propios parámetros de HTTP, con un xml&#8230;).</p>
<p>Después de buscar entre varios proveedores, nos hemos quedado con la <a href="http://www.altiria.com/pasarela-sms/" target="_blank">pasarela de envío de sms</a> de <a title="Altiria" href="http://www.altiria.com" target="_blank">Altiria</a>. El envío de sms se realiza con este proveedor mediante una petición POST a su servidor con los datos del sms que se quiere enviar como parámetros de la propia petición, siendo los más importantes el contenido del sms y los destinatarios. Se puede encontrar el documento de especificaciones de la conexión también en su web.</p>
<p>Queremos resaltar que el para que el ejemplo que ponemos a continuación funcione y envíe un sms, es necesario ponerse en <strong>contacto con Altiria</strong> y <strong>contratar un bono de envío de sms</strong> que permita la conexión a su pasarela de envío. El ejemplo sirve para ilustrar lo fácil que sería el envío del sms una vez contratado el bono.</p>
<p>Ya tenemos el proveedor y el mecanismo de envío (HTTP). Ya sólo queda <strong>implementar esta conexión HTTP</strong> en nuestro programa Java. Para ello necesitamos un <strong>cliente HTTP</strong> para realizar la conexión. Hemos elegido la <strong>librería HTTP de Jakarta</strong>, (<a title="Http Client" href="http://hc.apache.org/httpclient-3.x/" target="_blank">HttpClient</a>) que debe estar presente en el classpath de nuestra aplicación. El siguiente código realiza la conexión enviando los parámetros del sms.</p>

<div class="wp_codebox"><table width="100%" ><tr><td colspan="2" class="msgheader"><div class="codebox_right"><a href="###" onclick="copycode($('56code2'));">[Copiar]</a><a href="###" onclick="toggle_collapse('562');">[<span id="562_symbol">-</span>]</a></div><div class="codebox_left"><span id="l56code2"><a href="#" onclick="javascript:showCodeTxt('56code2'); return false;"> Codigo</a></span></div></td></tr><tr id="562"><td class="code" id="56code2"><pre class="java"><span style="color: #808080; font-style: italic;">//Se inicia el objeto HTTP</span>
HttpClient client = <span style="color: #000000; font-weight: bold;">new</span> HttpClient<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
client.<span style="color: #006600;">setStrictMode</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #808080; font-style: italic;">//Se fija el tiempo máximo de espera de la respuesta del servidor</span>
client.<span style="color: #006600;">setTimeout</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">60000</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #808080; font-style: italic;">//Se fija el tiempo máximo de espera para conectar con el servidor</span>
client.<span style="color: #006600;">setConnectionTimeout</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5000</span><span style="color: #66cc66;">&#41;</span>;
PostMethod post = <span style="color: #000000; font-weight: bold;">null</span>;
<span style="color: #808080; font-style: italic;">//Se fija la URL sobre la que enviar la petición POST</span>
&nbsp;
<span style="color: #808080; font-style: italic;">//Como ejemplo se supone www.pasarela_push_altiria.com/post/sms</span>
post = <span style="color: #000000; font-weight: bold;">new</span> PostMethod<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;http://www.pasarela_push_altiria.com/post/sms&quot;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #808080; font-style: italic;">//Se fija la codificación de caracteres en la cabecera de la petición</span>
post.<span style="color: #006600;">setRequestHeader</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;Content-type&quot;</span>, <span style="color: #ff0000;">&quot;application/x-www-form-urlencoded; charset=UTF-8&quot;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #808080; font-style: italic;">//Se crea la lista de parámetros a enviar en la petición POST</span>
<span style="color: #aaaadd; font-weight: bold;">NameValuePair</span><span style="color: #66cc66;">&#91;</span><span style="color: #66cc66;">&#93;</span> parametersList = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #aaaadd; font-weight: bold;">NameValuePair</span><span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#93;</span>;
parametersList<span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#93;</span> = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #aaaadd; font-weight: bold;">NameValuePair</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;dest&quot;</span>, <span style="color: #ff0000;">&quot;34600111222&quot;</span><span style="color: #66cc66;">&#41;</span>;
parametersList<span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#93;</span> = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #aaaadd; font-weight: bold;">NameValuePair</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;dest&quot;</span>, <span style="color: #ff0000;">&quot;34600111333&quot;</span><span style="color: #66cc66;">&#41;</span>;
parametersList<span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#93;</span> = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #aaaadd; font-weight: bold;">NameValuePair</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;msg&quot;</span>, <span style="color: #ff0000;">&quot;Mensaje de prueba&quot;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #808080; font-style: italic;">//Se rellena el cuerpo de la petición POST con los parámetros</span>
post.<span style="color: #006600;">setRequestBody</span><span style="color: #66cc66;">&#40;</span>parametersList<span style="color: #66cc66;">&#41;</span>;
<span style="color: #993333;">int</span> httpstatus = <span style="color: #cc66cc;">0</span>;
<span style="color: #aaaadd; font-weight: bold;">String</span> response = <span style="color: #000000; font-weight: bold;">null</span>;
&nbsp;
<span style="color: #000000; font-weight: bold;">try</span> <span style="color: #66cc66;">&#123;</span>
<span style="color: #808080; font-style: italic;">//Se envía la petición</span>
httpstatus = client.<span style="color: #006600;">executeMethod</span><span style="color: #66cc66;">&#40;</span>post<span style="color: #66cc66;">&#41;</span>;
<span style="color: #808080; font-style: italic;">//Se consigue la respuesta</span>
response = post.<span style="color: #006600;">getResponseBodyAsString</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>
<span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #66cc66;">&#40;</span><span style="color: #aaaadd; font-weight: bold;">Exception</span> e<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
<span style="color: #808080; font-style: italic;">//Habrá que prever la captura de excepciones</span>
<span style="color: #000000; font-weight: bold;">return</span>;
<span style="color: #66cc66;">&#125;</span>
<span style="color: #000000; font-weight: bold;">finally</span> <span style="color: #66cc66;">&#123;</span>
<span style="color: #808080; font-style: italic;">//En cualquier caso se cierra la conexión</span>
post.<span style="color: #006600;">releaseConnection</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">//Habrá que prever posibles errores en la respuesta del servidor</span>
<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>httpStatus!=<span style="color: #cc66cc;">200</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
<span style="color: #000000; font-weight: bold;">return</span>;
<span style="color: #66cc66;">&#125;</span>
<span style="color: #b1b100;">else</span> <span style="color: #66cc66;">&#123;</span>
<span style="color: #808080; font-style: italic;">//Se procesa la respuesta capturada en la cadena ‘‘response’’</span>
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>Este código se traduce en el envío de un sms con el texto &#8220;Mensaje de Prueba&#8221; a los móviles 34600111222 y 34600111333.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.programacionenjava.com/blog/2009/03/03/articulos/enviar-sms-desde-una-aplicacion-java/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

