2011-11-25 15 views
5

मैं जावा के साथ बहुत नया हूं। मैं कॉलिंग आरईएसटी एपीआई के लिए निम्नलिखित कोड का उपयोग कर रहा हूं, यह सरल वातावरण में काम कर रहा है, लेकिन जब मैंने प्रॉक्सी पर्यावरण के साथ उपयोग किया तो नलपोइंटर एक्सेप्शन फेंक रहा है। मुझे Google पर परिणाम मिला कि हमें इसके लिए प्रॉक्सी सेटिंग सेट करनी है। मैंने http://www.javaworld.com/javaworld/javatips/jw-javatip42.html आलेख के अनुसार प्रॉक्सी सेट की है लेकिन यह काम नहीं कर रहा है + बेस 64 एन्कोड (पासवर्ड) वाक्यविन्यास त्रुटि बना रहा है।जावा यूआरएल कनेक्शन के साथ प्रॉक्सी

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

कृपया मुझे प्रॉक्सी होस्ट, पोर्ट, उपयोगकर्ता नाम और पासवर्ड सेट करने में मदद करें।

उत्तर

18

मुझे संदेह है कि आपके NullPointerException ऐसा हो रहा है क्योंकि yc.getInputStream()null लौटा रहा है। आपको यह जांचने की आवश्यकता है कि इससे कुछ बाइट पढ़ने के लिए पाठक बनाने का प्रयास करने से पहले यह कुछ गैर-शून्य मान वापस कर रहा है।

प्रॉक्सी जारी करने के लिए के रूप में, आप कनेक्शन के लिए एक Proxy वस्तु पारित कर सकते हैं, जैसे:

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

यह कम से कम आप प्रॉक्सी पूछताछ और समस्या के लिए संभावित स्रोतों से इनकार करने के लिए अनुमति दे सकते हैं (देखते हैं कई, जैसा कि यह खड़ा है)।

This thread में आपके प्रॉक्सी उपयोगकर्ता नाम और पासवर्ड स्ट्रिंग को ठीक से काम करने के लिए कुछ उपयोगी संकेत हो सकते हैं। आपके द्वारा लिंक किया गया आलेख थोड़ा पुराना दिखता है।

+0

धन्यवाद अब यह अच्छा काम कर रहा है। –

+0

उपयोगकर्ता नाम और पासवर्ड के बारे में क्या? –

+0

@Gian, क्या उपरोक्त कोड jvm scope पर प्रॉक्सी कॉन्फ़िगरेशन को system.setProperty जैसा सेट करेगा? –

संबंधित मुद्दे