2011-11-25 7 views
5

Jestem bardzo nowy w Javie. Korzystam z następującego kodu dla wywołującego interfejsu API REST, działającego dobrze w prostym środowisku, ale kiedy użyłem go z otoczeniem proxy, rzucając NullPointerException . Znalazłem wynik w google, że musimy ustawić proxy dla tego. Ustawiłem proxy zgodnie z tym artykułem http://www.javaworld.com/javaworld/javatips/jw-javatip42.html, ale to nie działa + base64Encode (hasło) tworząc błąd składni.Proxy z Java URLConnection class

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

Proszę, pomóż mi ustawić proxy Host, port, nazwę użytkownika i hasło.

Odpowiedz

18

Podejrzewam, że występuje NullPointerException, ponieważ yc.getInputStream() powraca null. Przed próbą utworzenia czytnika odczytywania z niego bajtów należy sprawdzić, czy zwracana jest pewna wartość inna niż null.

chodzi o numerze proxy, można przekazać Proxy obiekt do podłączenia np:

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

Może przynajmniej pozwalają przesłuchać pełnomocnika i wyklucza potencjalne źródła dla tego problemu (istnieją kilka, jak to się dzieje).

This thread może zawierać przydatne wskazówki dotyczące poprawnego działania nazwy użytkownika i hasła serwera proxy. Łączony artykuł wygląda na nieco nieaktualny.

+0

dziękuję za sprawne teraz. –

+0

Co z nazwą użytkownika i hasłem? –

+0

@Gian, czy powyższy kod ustawi konfigurację proxy w zakresie jvm jak system.setProperty? –