2012-11-20 15 views
5

का उपयोग करने के बारे में चेतावनियां बनाएं मैं अपने निर्माण पर्यावरण को साफ करने की कोशिश कर रहा हूं और सूर्य प्रोप्रायटरी एपीआई के उपयोग के बारे में कुछ चेतावनियों की खोज की है।सूर्य मालिकाना एपीआई

[javac] /workspace/<path-to-files>/Handler.java:18: warning: sun.net.www.protocol.http.Handler is Sun proprietary API and may be removed in a future release 
[javac] public class Handler extends sun.net.www.protocol.http.Handler { 
[javac]              ^
[javac] /workspace/<path-to-files>/HttpClient.java:16: warning: sun.net.www.http.HttpClient is Sun proprietary API and may be removed in a future release 
[javac] public class HttpClient extends sun.net.www.http.HttpClient { 
[javac] 
[javac] /workspace/<path-to-files>/HttpURLConnection.java:19: warning: sun.net.www.protocol.http.HttpURLConnection is Sun proprietary API and may be removed in a future release 
[javac] public class HttpURLConnection extends sun.net.www.protocol.http.HttpURLConnection { 
[javac]                ^

और ...

[javac] /workspace/<path-to-files>/JavaFile.java:17: warning: sun.misc.BASE64Decoder is Sun proprietary API and may be removed in a future release 
[javac] import sun.misc.BASE64Decoder; 
[javac]    ^
[javac] /workspace/<path-to-files>/JavaFile.java:338: warning: sun.misc.BASE64Encoder is Sun proprietary API and may be removed in a future release 
[javac]   BASE64Encoder encoder = new BASE64Encoder(); 
[javac]  ^

किसी को भी इन एपीआई के लिए एक अच्छा विकल्प का सुझाव कर सकते हैं? या इन्हें आधिकारिक जावा एपीआई के साथ बदल दिया जा सकता है? मुझे एहसास है कि ये सिर्फ चेतावनियां हैं, लेकिन यह कुछ है जिसे मैं हल करने की योजना बना रहा हूं।

+0

इसके अलावा आप [इस] से भी सुझाव देख सकते हैं (http://stackoverflow.com/questions/9399400/what-does-update-method-of-messagedigest-do-and-what-is-base64encoder-meant-for) पद – CAMOBAP

उत्तर

7

यह स्पष्ट कारण है कि आप पहली जगह में अपने स्वयं के HttpURLConnection और Handler कक्षाएं घोषणा कर रहे नहीं है - आप यकीन आप उन संकलन करना चाहते हैं?

बेस 64 के लिए - मुझे this public domain implementation स्वयं पसंद है।

6

यदि आपने http क्लाइंट लिखा है तो आपने पहिया को फिर से शुरू कर दिया है। apache http client में पहले से ही वास्तव में अच्छा है।

यदि आप बेस 64 एन्कोडिंग/डिकोडिंग चाहते हैं तो apache commons codec में इसके लिए एक कक्षा है।

0

मुझे यकीन नहीं है कि आपको sun.net.www.protocol.http ऑब्जेक्ट्स को सीधे अपने कोड में क्यों उपयोग करना होगा, क्योंकि इन्हें आंतरिक रूप से HttpUrlConnection द्वारा उपयोग किया जाता है। आप आंतरिक वस्तुओं की बजाय उस वस्तु का उपयोग कर सकते हैं। यदि वह एपीआई आपकी आवश्यकताओं को पूरा नहीं करता है, तो Apache HttpClient है।

final InputStream decoded = MimeUtility.decode(encodedInput, "base64"); 

या Apache commons-codec:

आधार 64 एन्कोडिंग के लिए के रूप में, आप इस तरह Java Mail के साथ आपूर्ति की एक का उपयोग कर सकते हैं।

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