2012-02-08 12 views
6

Estoy tratando de enviar la solicitud de publicación al servicio web .. cuando agrego el carácter especial @ en el parámetro está convertido a% 40. He revisado el lado del servidor ... están obteniendo% 40 en su lugar de @. ¿alguien me puede ayudar? aquí es mi código ..@ convertido a% 40 en HTTPPost solicitud

httpclient = new DefaultHttpClient(); 
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); 
nameValuePairs.add(new BasicNameValuePair("Email", "[email protected]")); 


httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 
ResponseHandler<String> responseHandler = new BasicResponseHandler(); 
String response = httpclient.execute(httppost,responseHandler); 

también he intentado este método para evitar que mi parámetro de codificación.

httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs, HTTP.PLAIN_TEXT_TYPE)); 

pero levantó sin apoyo algoritmo codificado

pls me ayudan a salir de esto.

+0

decodifica el lado del servidor la codificación URL correctamente? – Thilo

+3

Creo que así es como se supone que funciona ... se supone que el extremo receptor decodificará el símbolo '@'. La explicación alternativa es que la está codificando dos veces, pero su código publicado no lo haría. – bdares

+0

puedo enviar el parámetro sin descifrar ... ??? ¿o hay algún otro método para enviar la solicitud de publicación? –

Respuesta

6

Estás usando UrlEncodedFormEntity, que será URL-encode el contenido. Convertir @ en %40 es normal con esta codificación. El destinatario debería poder decodificar eso automáticamente, aunque es posible que deba usar el tipo de contenido correcto para hacerlo, probablemente application/x-www-form-urlencoded.

2

Necesita usar algo como URLDecoder en el lado del servidor para que pueda convertir el %40 de nuevo a @. Lo mismo aplica para otros personajes especiales.

3

Use URLDecoder.decode(url) esto le será útil.

1

Puede utilizar

URLDecoder.decode("urlcontext", "UTF-8"); 

para eliminar cualquier carácter especial de la URL, que a su paso

Cuestiones relacionadas