6

ビルド環境をクリーンアップしようとしていますが、Sun 独自の API の使用に関していくつかの警告が報告されていることを発見しました。

[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]          ^

これらの API に代わる良い方法を提案できる人はいますか? または、これらを公式の Java API に置き換えることはできますか? これらは単なる警告であることは認識していますが、これは解決する予定です。

4

5 に答える 5

7

そもそもなぜ独自のクラスを宣言しているのかが明確HttpURLConnectionHandlerはありません -それらをコンパイルしてもよろしいです?

Base64 に関しては、私はこのパブリック ドメインの実装が気に入っています。

于 2012-11-20T14:51:48.617 に答える
6

http クライアントを作成した場合は、車輪を再発明したことになります。apache http clientにはすでに本当に優れたものがあります。

Base64 エンコーディング/デコーディングが必要な場合は、apache commons codecにそのクラスがあります。

于 2012-11-20T14:52:31.987 に答える
3

Apache Commons CodecにはBase64クラスが含まれています。

于 2012-11-20T14:51:41.600 に答える
0

sun.net.www.protocol.httpこれらのオブジェクトは によって内部的に使用されるため、これらのオブジェクトをコードで直接使用する必要がある理由がわかりませんHttpUrlConnection。内部オブジェクトの代わりにそのオブジェクトを使用できます。その API がニーズを満たさない場合は、Apache HttpClientがあります。

Base 64 エンコーディングに関しては、次のようにJava Mailで提供されているエンコーディングを使用できます。

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

またはApache commons-codec

于 2012-11-20T15:01:20.920 に答える