> Java > java지도 시간 > Java에서 Multipart/Form-Data POST 요청을 어떻게 보낼 수 있습니까?

Java에서 Multipart/Form-Data POST 요청을 어떻게 보낼 수 있습니까?

Linda Hamilton
풀어 주다: 2024-12-09 11:41:14
원래의
593명이 탐색했습니다.

How Can I Send Multipart/Form-Data POST Requests in Java?

Apache Commons HttpClient를 사용하여 Java에서 멀티파트/양식 데이터 POST 요청

HttpClient 버전 4.0 이전에는 멀티파트 전송이 가능했습니다. /form-data POST 요청. 그러나 이 기능은 버전 4.0에서 제거되었습니다. HttpClient 개발자는 멀티파트 처리가 프로젝트 범위를 벗어난 것으로 간주했습니다.

멀티파트/양식 데이터 POST 요청을 위한 대체 Java 라이브러리:

멀티파트가 없음에도 불구하고 HttpClient 4.0에서 지원되며 여러 Java 라이브러리가 이를 제공합니다. 기능:

  • Apache Commons FileUpload: Apache의 전용 멀티파트 구문 분석 및 형식 지정 라이브러리.
  • Jersey 클라이언트: REST API 클라이언트 Form을 통한 멀티파트 지원을 포함하는 프레임워크 class.
  • OkHttp: 멀티파트 요청 지원이 내장된 현대적이고 효율적인 HTTP 클라이언트.
  • UniRest: 멀티파트 기능.

HttpClient를 사용한 구현 예 4.3:

CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost uploadFile = new HttpPost("...");
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.addTextBody("field1", "yes", ContentType.TEXT_PLAIN);

// Attaching the file to the POST:
File f = new File("[/path/to/upload]");
builder.addBinaryBody(
    "file",
    new FileInputStream(f),
    ContentType.APPLICATION_OCTET_STREAM,
    f.getName()
);

HttpEntity multipart = builder.build();
uploadFile.setEntity(multipart);
CloseableHttpResponse response = httpClient.execute(uploadFile);
로그인 후 복사

레거시 HttpClient 4.0을 사용한 구현 예(더 이상 사용되지 않음):

HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(url);

FileBody bin = new FileBody(new File(fileName));
StringBody comment = new StringBody("Filename: " + fileName);

MultipartEntity reqEntity = new MultipartEntity();
reqEntity.addPart("bin", bin);
reqEntity.addPart("comment", comment);
httppost.setEntity(reqEntity);

HttpResponse response = httpclient.execute(httppost);
로그인 후 복사

결론:

HttpClient 4.0은 그렇지 않지만 기본적으로 multipart/form-data POST 요청을 지원합니다. 대체 Java 라이브러리와 코드 조각은 개발자가 이 기능을 달성하는 데 도움이 될 수 있습니다. 이러한 리소스를 활용함으로써 사용자는 멀티파트 요청을 처리하고 Zoho Writer의 원격 API와 같은 웹 서비스와 원활하게 통합하는 HTTP 클라이언트를 효과적으로 구현할 수 있습니다.

위 내용은 Java에서 Multipart/Form-Data POST 요청을 어떻게 보낼 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿