Upgrade auf API 23: Behebung der veralteten Version von org.apache.http.entity.FileEntity
Mit der Einführung von Android 6 (Marshmallow ), ist die Bibliothek org.apache.http veraltet. Dies stellt eine Herausforderung für Entwickler dar, die für Datei-Uploads auf die FileEntity-Klasse angewiesen sind.
Veralteter Code für Datei-Upload
Der folgende Codeausschnitt veranschaulicht den veralteten Ansatz:
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());
Alternative Lösungen
Einige Alternativen zur FileEntity-Klasse umfassen:
OkHttp-Lösung zum Hochladen von Dateien
Verwenden OkHttp, eine ähnliche Datei-Upload-Funktionalität kann mit dem folgenden Code erreicht werden:
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();
Diese Lösung ermöglicht einen präziseren und überschaubareren Ansatz für Datei-Uploads unter Einhaltung der neuesten Android-Richtlinien.
Das obige ist der detaillierte Inhalt vonWie migriere ich von veraltetem „org.apache.http.entity.FileEntity' für Datei-Uploads in Android?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!