Publicar una url que contenga un guión bajo (_)

Estoy publicando una url con params containg un guión bajo (_).

Muestra: http://sdsdsds_asasasahjhd.com/dsdsdsd/login.json?

Estoy publicándolo así:

  HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost("http://sdsdsds_asasasahjhd.com/dsdsdsd/login.json?"); try { List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2); nameValuePairs.add(new BasicNameValuePair("key1", "value1")); nameValuePairs.add(new BasicNameValuePair("key2", "value2")); nameValuePairs .add(new BasicNameValuePair("key3", "value3")); httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); // Execute HTTP Post Request HttpResponse response = httpclient.execute(httppost); } catch (Exception e) { e.printStackTrace(); } 

Cuando estoy inspeccionando httpclient.execute(httppost) estoy recibiendo IllegalArgumentException y en catch en detalles de excepción está diciendo que el Host name cannot be null . Especifique cualquier solución.

He pasado por algunas otras preguntas aquí:

  • Java.lang.IllegalStateException: El host de destino no debe ser nulo o configurado en parámetros
  • El nombre de host no puede ser nulo en HttpResponse para ejecutar android

Pero no uso, ya que no estoy codificando la URL entera.

Así que indica claramente que el nombre de host no puede ser nulo .. su url no especifica uno ..

Se espera que una URL esté en el formato

 http://hostName.com/example..../example.json 

Tengo una biblioteca de código abierto con mecanismo de implementación de red. Sólo tiene un receptor una aplicación alternativa. Todo lo que necesita para configurar el host por reflexión en caso de problemas:

  final URI uriObj = new URI("https", host, path, null, null); if (uriObj.getHost() == null) { final Field hostField = URI.class.getDeclaredField("host"); hostField.setAccessible(true); hostField.set(uriObj, host); } return uriObj; 

El compromiso está aquí .

HttpPost httppost = new HttpPost(String);

Este contructor intentará formar una instancia de URL desde la Cadena proporcionada. Si esto falla, se tratará con un valor null .

Publica la URL real que estás usando y no una muestra si quieres que podamos ayudarte más.

Vea este enlace. Apache no soporta subrayado. Debe cambiar la url

https://issues.apache.org/jira/browse/HTTPCLIENT-911

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.