>Java >java지도 시간 >Android에서 파일 업로드를 위해 더 이상 사용되지 않는 `org.apache.http.entity.FileEntity`에서 마이그레이션하는 방법은 무엇입니까?

Android에서 파일 업로드를 위해 더 이상 사용되지 않는 `org.apache.http.entity.FileEntity`에서 마이그레이션하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-26 15:12:10989검색

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 HttpClient for Android: 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.