2011-12-22 9 views
5

Quiero enviar un par de valores para un servidor web de mi cliente de Android que utiliza este NameValuePair método:Envío entero al servidor HTTP utilizando 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 
     } 
    } 

Desafortunadamente NameValuePair sólo es capaz de enviar cuerdas, necesito envía valores enteros también. ¿Alguien puede ayudarme a resolver mi problema?

Respuesta

13

Hola hectichavana Si desea enviar valores enteros usando el par valor de nombre se puede tratar como esto

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

donde el género es sinónimo de llave y 1 se convertirá en valor de esta clave. Espero que esta ayuda.

+0

tengo cinco valores en la ruleta con nombre diferente como a, b, c, d, e, fi quieren pasar valores enteros de estos valores de cadena ... ¿cómo hacerlo? a b c d e f

+0

@AdityaVyas, haga una pregunta nueva en una nueva publicación. –

+0

Es solo cuestión de obtener el valor seleccionado de spinner. Luego puede usar el método Integer.toString() para convertir Entero a Cadena. @DarylBennett es cierto que su pregunta no está relacionada con este hilo. –

1

Disculpas si declaro lo obvio y/o me falta el punto, pero la solución natural parece ser convertir ints a cadenas y luego convertir de nuevo en el extremo del servidor. La solución más completa sería usar una presentación diferente (como XML) para codificar los datos.

2

No creo que el otro extremo de su solicitud de publicación cuide de su formato de valor que usa el cliente y lo tome todo como una cadena. Entonces IMO es por eso que NameValuePair solo toma String. Si los datos están en formato numérico siempre se puede convertir de nuevo a cadena y vincularlo mediante NameValuePair

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

es un ejemplo que siempre uso.

Cuestiones relacionadas