POST Http in BlackBerry

Saluti,

Sto cercando di configurare una connessione al server dalla mia applicazione BlackBerry. Sono stato in grado di ottenere un codice di risposta sullo stato del server. Ora ho alcuni valori che devo POST al server

È come se i valori di una pagina di registrazione (nome utente, password, età) dovessero essere inviati al server.

ConnectionFactory connFact = new ConnectionFactory(); ConnectionDescriptor connDesc; connDesc = connFact.getConnection(url); if (connDesc != null) { HttpConnection httpConn; httpConn = (HttpConnection)connDesc.getConnection(); try { final int iResponseCode = httpConn.getResponseCode(); UiApplication.getUiApplication().invokeLater(new Runnable() { public void run() { Dialog.alert("Response code: " + Integer.toString(iResponseCode)); } }); } catch (IOException e) { System.err.println("Caught IOException: " + e.getMessage()); } } 

Questo è il codice che ho usato per ottenere il codice di risposta. Sarei grato se qualcuno potesse aiutarmi a fare una richiesta POST al server … l’URL del server per lo stato era company.com/app/version/stats

quando per registrarsi sarebbe company.com/app/register

Grazie

  ... httpConn = (HttpConnection)connDesc.getConnection(); httpConn.setRequestMethod(HttpConnection.POST); httpConn.setRequestProperty("username",name); httpConn.setRequestProperty("password",pass); .... 

Che tipo di POST usi? Se passi semplicemente coppie chiave-valore, allora dovrebbe essere un POST di un tipo di contenuto “application / x-www-form-urlencoded”.

Quindi, ciò che manca è il codice:

1). Imposta un tipo di contenuto appropriato sulla tua connessione:

 httpConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); 

2). Prepara il contenuto da inviare al server tramite il POST:

 URLEncodedPostData encPostData = new URLEncodedPostData("UTF-8", false); encPostData.append("username", username); encPostData.append("password", password); encPostData.append("age", age); byte[] postData = encPostData.toString().getBytes("UTF-8"); 

3). Imposta la lunghezza del contenuto per la connessione (questo passaggio potrebbe essere facoltativo: prova prima senza questo, probabilmente il BB OS è abbastanza intelligente da impostare automaticamente questo):

 httpConn.setRequestProperty("Content-Length", String.valueOf(postData.length)); 

4). Apri un OutputStream e scrivi il contenuto (il codice è semplificato):

 OutputStream os = httpConn.openOutputStream(); os.write(postData); os.flush();