2009-07-31 8 views
8

Necesito codificar una URL mediante la solicitud HTTP GET en Blackberry. ¿Alguien puede ayudarme a encontrar cómo puedo lograr esto?Encóder URL de Blackberry

Respuesta

8

aquí tienes; ^)

public static String URLencode(String s) 
{ 
    if (s!=null) { 
     StringBuffer tmp = new StringBuffer(); 
     int i=0; 
     try { 
      while (true) { 
       int b = (int)s.charAt(i++); 
       if ((b>=0x30 && b<=0x39) || (b>=0x41 && b<=0x5A) || (b>=0x61 && b<=0x7A)) { 
        tmp.append((char)b); 
       } 
       else { 
        tmp.append("%"); 
        if (b <= 0xf) tmp.append("0"); 
        tmp.append(Integer.toHexString(b)); 
       } 
      } 
     } 
     catch (Exception e) {} 
     return tmp.toString(); 
    } 
    return null; 
} 
18

Whyt qué no utilizar RIM URLEncodedPostData?

private String encodeUrl(String hsURL) { 
    URLEncodedPostData urlEncoder = new URLEncodedPostData("UTF-8", false); 
    urlEncoder.setData(hsURL); 
    hsURL = urlEncoder.toString(); 
    return hsURL; 
} 
+0

Gran solución, pero no portátil. Dado que quiere ejecutar su software en un móvil diferente, volverá a hacer la misma pregunta. Lo mejor es mantenerse alejado de las clases que solo se ejecutan en una plataforma. – Toad

+0

No puedo asegurarlo ... En este caso, tiene razón, porque no es una funcionalidad dependiente de la plataforma. Pero aún así simple es bueno, impleméntalo cuando te pregunten. –

+4

En realidad, él no dice que está escribiendo código móvil multiplataforma, por lo que en este caso estaría de acuerdo con Coldice: me parece más seguro (menos propenso a introducir errores) usar una API nativa que una versión casera. –

6

utilizan la clase proporcionada por w3. Aquí está la descarga link

+0

thx, w3 está infravalorado para estas cosas. –

3

the reply using "URLEncodedPostData" above es incorrecta. muestra Corregido:

public static String encodeUrl(Hashtable params) 
{ 
    URLEncodedPostData urlEncoder = new URLEncodedPostData("UTF-8", false); 
    Enumeration keys = params.keys(); 
    while (keys.hasMoreElements()) { 
     String name = (String) keys.nextElement(); 
     String value = (String) params.get(name); 
     urlEncoder.append(name, value); 
    } 

    String encoded = urlEncoder.toString(); 
    return encoded; 
} 

Salud!