Establecimiento de conexiones HTTP desde un MIDLET

Este tutorial nos va a ayudar para resolver los problemas de conexión HTTP desde un MIDLET.

Establecimiento de Conexiones HTTP desde un MIDLET

Introducción

El motivo de este tutorial es echar una mano a los muchos
desarrolladores de MIDLETS que veo que tienen todos el mismo poblema y
que nadie da la solución que de verdad funcione en
ningún
sitio. (Investigé por foros de habla inglesa y
española)

El problema es el siguiente:

Cuando hacemos un MIDLET (Una
aplicación J2ME o lo
que es lo mismo una aplicación Java para móviles)
que
requiere conectarse a Internet para enviar/recibir datos, esta se
bloquea sin motivo aparente y no funciona.

En estos foros se dicen entre otras cosas, que un MIDLET no
puede
conectarse a Internet si no está firmado, o que los
proveedores
capan el puerto 80 y por eso no funciona.. pues bien, yo
cambié
de puerto y seguía sin funcionar y firmé el
MIDLET y
también seguía sin funcionar… así
que
después de desesperarme seguí investigando y
haciendo
todo tipo de pruebas hasta que di con la solución (Y no fue
facil, creerme.. por lo menos 100 horas y mucho dinero gastado en
pruebas).

A continuación os cuento como solucionar el
problema y luego
escribimos un MIDLET sencillito para que lo proveis si lo deseais. 🙂

Para que la conexión HTTP desde un MIDLET funcione
(suponiendo que está bien programado, claro) simplemente se
deben hacer dos cosas:

a) Tener bien configurado el teléfono para que se
conecte a
Internet por GRPS o cualquier otra tecnología más
moderna. (Navegar por WAP correctamente no significa que
esté
bien configurado el teléfono para conectarse a Internet
desde
las aplicaciones). Para configurar nuestro teléfono o PDA
podemos ir a la página de nuestro proveedor de acceso, pues
suelen tener páginas en donde metes tu número de
móvil y gratuitamente te envian un SMS de
configuración
que lo hace todo automáticamente. (También
podemos llamar
por teléfono o mirar los datos de configuración
por los
foros)

b) En nuestro teléfono, navegando por los
menúes,
debemos buscar la opción Perfiles de conexión o
Perfiles
WAP (cada modelo de teléfono tiene sus menúes
propios por
lo que es inviable dar más detalles) y cuando lo encontremos
debemos seleccionar como predeterminado
una conexión que se llama Internet o si no apareciera, una
conexión que se llama «Java Session».

Fácil
¿¿¿¿ verdad?????..

 

Vamos a ver un Ejemplo

El ejemplo que vamos a hacer es un simple MIDLET que se
conecta a
una URL por HTTP (Osea debería de funcionar en cualquier
móvil Java, pues la versión más
antigua de J2ME ya
da soporte para este protocolo). En esta URL escucha un Script PHP que
envia dos cosas:

a) Una cabecera personalizada. (Para ver que el MIDLET es
capaz de leer cabeceras no estándars)

b) Una frasecita. (Para ver que efectivamente el MIDLET lee lo
que el PHP nos envia)

El MIDLET simplemente muestra en pantalla un mensaje diciendo
que se
va a conectar a Internet para probar que el dispositivo efectivamente
puede conectarse y un botón que al pulsarlo inicia la prueba.

——————————————

El Script PHP se llamará

Text
prueba.php

y tendra el siguiente código:

Ahora vamos con el MIDLET. Este constará de dos clases.

Text
PhoneTest.java

Esta clase es el punto de arranque del MIDLET, es decir como
el main de una aplicación clásica de escritorio.

El siguiente script (

Text
PhoneTestForm.java

) es el que recibe los datos que se envian desde el formulario. Es autocomentado.

A continuación configuramos los MIME-TYPES del
servidor para
que envie las cabeceras correctas al dispositivo (Se lo teneis que dar
todo perfecto.. la mayoría sobre todo los modelos
más
antiguos lo requieren)

Mime Type: text/vnd.sun.j2me.app-descriptor para la extensión .jad 
Mime Type: application/java-archive para la extensión .jar
Mime Type: application/xhtml+xml para la extensión .xhtml

Ahora creamos la página Web para que navegando a
dicha página desde nuestro teléfono (http://DireccionATuServidor/pt.xhtml)
se descarge e instale la aplicación en nuestro dispositivo
(protocolo OTA). ¡¡ Importante !!. Para navegar por
Internet desde el explorador de nuestro teléfono, debemos
tener
activada como predeterminada el perfil en cuyo nombre aparezca la
palabra WAP. (Para no hacer publicidad, debeis buscar el perfil
PepitoWAP, JuanitoWAP o algo asi 😉 )

Suponemos que la aplicación a sido compilada y
empaquetada
con los nombres pt.jar y pt.jar (Conviene ofuscarla y optimizarla con
Progrard u otros para que pese menos Kb)

Conclusiones

Para concluir decios que si os adentráis en el
mundo de los
MIDLETs, realicéis pruebas con teléfonos reales
pues en
los emuladores todo funciona siempre correctamente pero luego uno se
lleva sorpresas desagradables cuando los prueba en teléfonos
reales. (Scrolls raros, visualización de caracteres
erróneos, botones descolocados, etc.)

——

Bueno, espero que os haya sido de utilidad este tutorial.

En Autentia,
empresa en la cual
trabajo, nos gusta compartir el conocimiento. Aquí teneis un
poquito más de nuestra aportación. Si
algún
día necesitais un poco de ayuda con vuestros proyectos o
necesitais de formación ya sabeis donde encontrarnos.

Muchas gracias por visitar Adictos al Trabajo

Saludos. Carlos García. Creador de MobileTest.

Comentarios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

He leído y acepto la política de privacidad

Información básica acerca de la protección de datos

  • Responsable: IZERTIS S.A.
  • Finalidad: Envío información de carácter administrativa, técnica, organizativa y/o comercial sobre los productos y servicios sobre los que se nos consulta.
  • Legitimación: Consentimiento del interesado
  • Destinatarios: Otras empresas del Grupo IZERTIS. Encargados del tratamiento.
  • Derechos: Acceso, rectificación, supresión, cancelación, limitación y portabilidad de los datos.
  • Más información: Puedes ampliar información acerca de la protección de datos en el siguiente enlace:política de privacidad

Técnico especialista en informática de empresa (CEU). Ingeniero Técnico en Informática de Sistemas (UPM) Creador de MobileTest, Haaala!, Girillo, toi18n. Charla sobre desarrollo de aplicaciones en Android. @cgpcosmad

¿Quieres publicar en Adictos al trabajo?

Te puede interesar

22/06/2026

Juan Antonio Jiménez Torres

Vamos a instrumentalizar un SDD para un microservicio bancario. En este artículo sobre SDD - Spec Driven Development, instrumentalizado sobre OpenSpec vamos a construir una PoC de algo más serio que una tabla periódica. Un microservicio bancario muy simplificado que gestione cuentas y permita hacer transferencias

16/06/2026

Juan Antonio Jiménez Torres

Este es el segundo artículo sobre SDD, Spec Driven Development, instrumentalizado sobre OpenSpec. Pero esta vez nos acercaremos usando softwere gratuito. Por un lado OpenCode en lugar de ClaudeCode y usando el modelo gratuito Gemma4 de Google en lugar de otros de pago.

08/06/2026

Juan Antonio Jiménez Torres

Aprenderemos sobre SDD – Spec Driven Development instrumentalizado sobre OpenSpec. Haremos un primer acercamiento usando ClaudeCode con Sonnet, para luego, en un artículo posterior pasarnos a la versión gratuita de OpenCode con Gemma4