Android 6 (Marshmallow) での org.apache.http.entity.FileEntity の廃止: 総合ガイド
Android Marshmallow のリリースに伴い、由緒ある org.apache.http.entity.FileEntity クラスが廃止されました。このため、開発者はファイルのアップロードを処理するための代替手段を探しています。
非推奨の通知
ファイルのアップロードに一般的に使用されるコードの次のセクションは、Android では動作しなくなります。 6 以上:
HttpClient httpClient = new DefaultHttpClient(); File file = new File(attr.Value); String url = server_url; HttpPost request = new HttpPost(url); FileEntity fileEntity = new FileEntity(file, "image/png"); request.setEntity(fileEntity); HttpResponse response = httpClient.execute(request); String output = getContent(response.getEntity().getContent());
代替解決策
FileEntity を他のメソッドに置き換えるのはより複雑になる可能性がありますが、利用可能な実行可能なオプションがいくつかあります。
HttpURLConnection
ビルドされた-in Java HttpURLConnection クラスはファイルのアップロードに使用できますが、その API はより冗長であり、コード行が増えます。 HttpURLConnection を使用する例を次に示します。
// Implement your own HTTP file upload logic here
Apache HttpClient for Android
Apache は、FileEntity の代替を含む Android 用の別の HttpClient ライブラリを提供します。このライブラリを使用するには追加の依存関係が必要になりますが、ファイルのアップロードを処理するための使い慣れた API が提供されます。
OkHttp
OkHttp は、HTTP ネットワーキング用の人気のあるサードパーティ ライブラリです。アンドロイド。ファイルのアップロードを簡単に処理できる、クリーンで簡潔な API が特徴です。 OkHttp の MultipartBuilder を使用した例を次に示します。
// Implement your own OkHttp file upload logic here
その他の考慮事項
CompileSdkVersion
compileSdkVersion を 21 に変更すると、を使用してアプリをコンパイルできるようにしますFileEntity ですが、非推奨の根本的な理由に対処することが重要です。
代替ライブラリ
上記のオプションに加えて、HTTP ネットワーキングで使用できる他のライブラリがあります。 Android では、Volley、Retrofit、AndroidAsync など。これらのライブラリは、特定の要件に応じて、さまざまな機能と利点を提供します。
以上がAndroid 6 以降で非推奨になった org.apache.http.entity.FileEntity の最良の代替案は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。