ホームページ >Java >&#&チュートリアル >Android でのファイルアップロードのために非推奨の `org.apache.http.entity.FileEntity` から移行するにはどうすればよいですか?

Android でのファイルアップロードのために非推奨の `org.apache.http.entity.FileEntity` から移行するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-26 15:12:10973ブラウズ

How to Migrate from Deprecated `org.apache.http.entity.FileEntity` for File Uploads in Android?

API 23 へのアップグレード: org.apache.http.entity.FileEntity の非推奨への対処

Android 6 (Marshmallow) の出現により)、org.apache.http ライブラリは非推奨になりました。これは、ファイルのアップロードに FileEntity クラスに依存する開発者にとって課題となります。

ファイル アップロードの古いコード

次のコード スニペットは、非推奨のアプローチの例です。

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: HttpURLConnection はファイル アップロード用のネイティブ ソリューションを提供しますが、その API は大幅に複雑になる可能性があります。より複雑です。
  • Apache Android 用 HttpClient: これは、Android 向けに特別に調整された HttpClient の独立したパッケージです。
  • OkHttp: この推奨ライブラリは、ファイル アップロード用の合理化された API を提供します。

ファイルの OkHttp ソリューションアップロード

OkHttp を使用すると、次のコードで同様のファイル アップロード機能を実現できます。

OkHttpClient client = new OkHttpClient();
RequestBody requestBody = new MultipartBody.Builder()
        .setType(MultipartBody.FORM)
        .addFormDataPart("file", file.getName(), RequestBody.create(MediaType.parse("image/png"), file))
        .build();
Request request = new Request.Builder()
        .url(server_url)
        .post(requestBody)
        .build();
Response response = client.newCall(request).execute();
String result = response.body().string();

このソリューションにより、準拠しながらファイル アップロードに対するより簡潔で管理しやすいアプローチが可能になります。最新の Android ガイドラインに準拠してください。

以上がAndroid でのファイルアップロードのために非推奨の `org.apache.http.entity.FileEntity` から移行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:Java Stream.distinct()次の記事:Java Stream.distinct()