2011-11-25 44 views
5

Soy muy nuevo con Java. Estoy usando el siguiente código para la API de REST llamada, funciona bien en un entorno simple, pero cuando lo uso con un entorno de proxy lanza el NullPointerException. Encontré el resultado en google que tenemos que establecer la configuración del proxy para eso. Establecí el proxy de acuerdo con ese artículo http://www.javaworld.com/javaworld/javatips/jw-javatip42.html, pero esto no funciona + base64Encode (contraseña) creando un error de sintaxis.Proxy Con clase URLConnection de Java

URL url = new URL("http://examplerestapi/get/user"); 
URLConnection yc = url.openConnection(); 



in = new BufferedReader(new InputStreamReader(yc.getInputStream())); 
String inputLine; 

while ((inputLine = in.readLine()) != null) { 
     sb.append(inputLine); 
} 

String res = sb.toString(); 

ayúdenme a configurar el servidor proxy, el puerto, el nombre de usuario y la contraseña.

Respuesta

18

Sospecho que su NullPointerException se está produciendo porque yc.getInputStream() está retornando null. Debe comprobar que devuelve algún valor no nulo antes de intentar crear un lector para leer bytes desde él.

En cuanto a la cuestión de proxy, se puede pasar un objeto Proxy a la conexión, por ejemplo:

Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("my.proxy.example.com", 3128)); 
URLConnection yc = url.openConnection(proxy); 

Esto podría al menos permitirá interrogar al proxy y descartar posibles fuentes para el problema (hay varios, tal como están).

This thread podría tener algunas sugerencias útiles para que la cadena de nombre de usuario y contraseña de proxy funcione correctamente. El artículo que vinculó parece un poco desactualizado.

+0

Gracias, ahora funciona bien. –

+0

¿Qué pasa con el nombre de usuario y la contraseña? –

+0

@Gian, ¿configurará el código anterior la configuración del proxy en el ámbito jvm como system.setProperty? –

Cuestiones relacionadas