Heim >Java >javaLernprogramm >Wie ersetze ich org.apache.http.entity.FileEntity für Datei-Uploads in Android 6 und höher?

Wie ersetze ich org.apache.http.entity.FileEntity für Datei-Uploads in Android 6 und höher?

Susan Sarandon
Susan SarandonOriginal
2024-11-30 05:56:13629Durchsuche

How to Replace org.apache.http.entity.FileEntity for File Uploads in Android 6 and Above?

Migration von org.apache.http.entity.FileEntity in Android 6

Das Upgrade von Apps auf Android 6 führt zu Konflikten mit der veralteten Organisation. Apache.http-Bibliothek. Die FileEntity-Klasse, die zuvor zum Hochladen von Dateien verwendet wurde, wird nicht mehr unterstützt. Entwickler suchen nach alternativen Lösungen mit einfacherer Implementierung.

Ein Ansatz besteht darin, „compileSdkVersion“ auf 21 zu halten, damit Apps mit der FileEntity-Klasse kompiliert werden können. Diese Problemumgehung behebt jedoch nicht das Veraltungsproblem und ignoriert Googles Absichten, von HttpURLConnection abzuweichen.

Daher werden Entwickler aufgefordert, alternative Bibliotheken zu erkunden.

Alternative Bibliotheken für Dateien Uploads

  • java.net.HttpUrlConnection: Die integrierte klassische Java HttpURLConnection bietet eine Alternative, allerdings mit einer weniger benutzerfreundlichen API.
  • Apaches HttpClient für Android: Unabhängige Apache-Verpackung bietet eine dedizierte HttpClient für Android.
  • OkHttp (empfohlen): Verfügt über eine benutzerfreundliche API für Dateiveröffentlichungen und mehrteilige Formular-Uploads.
  • AndroidAsync: An asynchroner HTTP- und WebSocket-Client Bibliothek.

OkHttp-Beispiel für das Hochladen von Dateien

OkHttp bietet eine unkomplizierte API für Datei-Uploads:

MultipartBody multipartBody = new MultipartBody.Builder().setType(MultipartBody.FORM)
        .addFormDataPart("image", "filename.png", RequestBody.create(MediaType.parse("image/png"), file))
        .build();

Request request = new Request.Builder().url(server_url).post(multipartBody).build();

Das obige ist der detaillierte Inhalt vonWie ersetze ich org.apache.http.entity.FileEntity für Datei-Uploads in Android 6 und höher?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn