2011-11-25 3 views
5

Sono molto nuovo con Java. Sto usando il seguente codice per l'API REST di chiamata, funziona bene in ambiente semplice ma quando l'ho usato con l'ambiente proxy. Lanciare il NullPointerException. Ho trovato risultati su google che dobbiamo impostare le impostazioni proxy per questo. Ho impostato il proxy in base a quell'articolo http://www.javaworld.com/javaworld/javatips/jw-javatip42.html ma questo non funziona + base64Encode (password) creazione di errore di sintassi.Proxy con Java Classe URLConnection

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(); 

please help me per impostare l'host proxy, porta, nome utente e password.

risposta

18

Ho il sospetto che il tuo NullPointerException si verifichi perché yc.getInputStream() restituisce null. È necessario verificare che restituisca un valore non nullo prima di tentare di creare un lettore per leggere byte da esso.

quanto riguarda la questione del proxy, è possibile passare un oggetto Proxy alla connessione, ad esempio:

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

Questo potrebbe almeno consentire di interrogare il proxy ed escludere possibili fonti per il problema (ci sono diversi, così com'è).

This thread potrebbe avere alcuni suggerimenti utili per il corretto funzionamento del nome utente e della stringa password del proxy. L'articolo che hai collegato sembra leggermente obsoleto.

+0

grazie al suo funzionamento piacevole ora. –

+0

E riguardo username e password? –

+0

@Gian, il codice sopra riportato imposta la configurazione del proxy su scope jvm come system.setProperty? –