2011-12-22 12 views
5

voglio mandare un paio di valori a un server web dal mio client Android utilizzando questo metodo NameValuePair:Invio Integer al server HTTP usando NameValuePair

public void postData() { 
     // Create a new HttpClient and Post Header 
     HttpClient httpclient = new DefaultHttpClient(); 
     HttpPost httppost = new HttpPost("http:/xxxxxxx"); 

     try { 
      // Add your data 
      List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1); 
      String amount = paymentAmount.getText().toString(); 
      String email = inputEmail.getText().toString(); 
      nameValuePairs.add(new BasicNameValuePair("donationAmount", amount)); 
      nameValuePairs.add(new BasicNameValuePair("email", email)); 
      nameValuePairs.add(new BasicNameValuePair("paymentMethod", "5")); 
      httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

      // Execute HTTP Post Request 
      HttpResponse response = httpclient.execute(httppost); 

     } catch (ClientProtocolException e) { 
      // TODO Auto-generated catch block 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
     } 
    } 

Purtroppo NameValuePair è solo in grado di inviare stringa, ho bisogno di invia anche valori interi. Qualcuno può aiutarmi a risolvere il mio problema?

risposta

13

Hi hectichavana Se si desidera inviare valori interi utilizzando coppia di valori nome che si può provare in questo modo

nameValuePairs.add(new BasicNameValuePair("gender",Integer.toString(1))); 

cui genere è sinonimo di chiave e 1 diventerà il valore di questa chiave. Spero che questo aiuto.

+0

ho cinque valori in spinner con nome diffrente come a, b, c, d, e, fi voglio passare valori interi di questa stringa valori .. come fare? un b c d e f

+0

@AdityaVyas, fare una nuova domanda in un nuovo post. –

+0

È solo questione di ottenere il valore selezionato dalla casella di selezione. Quindi è possibile utilizzare il metodo Integer.toString() per convertire Integer in String. @DarylBennett ha ragione la tua domanda non è legata a questa discussione. –

1

Mi scuso se sto affermando l'ovvio e/o manca il punto, ma la soluzione naturale sembra essere quella di convertire ints alle stringhe e quindi riconvertire alla fine del server. La soluzione più completa sarebbe quella di utilizzare una presentazione diversa (come XML) per codificare i dati.

2

Non credo che l'altra estremità del tuo post richieda la cura del tuo valore formattare il client usando e prendi tutto come stringa. Quindi IMO è per questo che NameValuePair accetta solo String. Se i dati sono in formato numerico è sempre possibile convertire di nuovo a String e accoppiarlo con NameValuePair

new BasicNameValuePair("integer", new Integer().toString(value)); 

è un esempio che io uso sempre.

Problemi correlati