2009-07-31 3 views
8

Ho bisogno di codificare un URL utilizzando la richiesta HTTP GET in Blackberry. Qualcuno può aiutarmi a trovare come ottengo ciò.Encoder URL Blackberry

risposta

8

qui si va; ^)

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 non usi RIM URLEncodedPostData?

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

Ottima soluzione ma non portatile. Dato che vuole eseguire il suo software su un altro cellulare, farà di nuovo la stessa domanda. La cosa migliore è evitare le lezioni che funzionano solo su una piattaforma. – Toad

+0

Non posso dirlo con certezza ... In questo caso hai ragione, perché non è una funzionalità dipendente dalla piattaforma. Ma ancora semplice è buono, implementalo quando ti chiedono. –

+4

In realtà non dice che stia scrivendo il codice mobile multipiattaforma, quindi in questo caso mi schiererei con il coldice: mi sembra più sicuro (meno probabile introdurre bug) utilizzare un'API nativa su un approccio homebrew. –

6

utilizzare la classe fornita da w3. Ecco il download link

+0

thx, w3 è sottovalutato per queste cose. –

3

the reply using "URLEncodedPostData" above non è corretto. campione Corretto:

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; 
} 

Cheers!