2011-11-25 38 views
5

Tôi rất mới với Java. Tôi đang sử dụng mã sau đây cho các API REST gọi, làm việc tốt trong môi trường đơn giản nhưng khi tôi sử dụng với môi trường proxy Nó ném NullPointerException. Tôi tìm thấy kết quả trên google rằng chúng ta phải thiết lập thiết lập proxy cho điều đó. Tôi đặt proxy theo bài viết http://www.javaworld.com/javaworld/javatips/jw-javatip42.html nhưng điều này không hoạt động + base64Encode (mật khẩu) tạo lỗi cú pháp.Proxy Với lớp Java 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(); 

hãy giúp tôi đặt proxy Host, cổng, tên người dùng và mật khẩu.

Trả lời

18

Tôi nghi ngờ NullPointerException của bạn đang xảy ra vì yc.getInputStream() đang trả lại null. Bạn cần phải kiểm tra xem nó có trả về một giá trị không null trước khi bạn cố gắng tạo một trình đọc để đọc các byte từ nó hay không.

Đối với vấn đề proxy, bạn có thể vượt qua một đối tượng Proxy để kết nối, ví dụ:

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

này có thể ít nhất là cho phép bạn tra hỏi các Proxy và loại trừ các nguồn tiềm năng cho vấn đề (có một số, khi nó đứng).

This thread có thể có một số gợi ý hữu ích để nhận được tên người dùng và chuỗi mật khẩu proxy của bạn hoạt động bình thường. Bài viết bạn đã liên kết trông hơi lỗi thời.

+0

cảm ơn hoạt động tốt đẹp của nó ngay bây giờ. –

+0

Còn tên người dùng và mật khẩu thì sao? –

+0

@Gian, mã trên có đặt cấu hình proxy trên phạm vi jvm như system.setProperty không? –

Các vấn đề liên quan