>Java >java지도 시간 >Java에서 Multipart/Form-Data POST 요청을 만드는 방법은 무엇입니까?

Java에서 Multipart/Form-Data POST 요청을 만드는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-09 14:35:19306검색

How to Make Multipart/Form-Data POST Requests in Java?

Java에서 다중 부분/양식 데이터 POST 요청 만들기

HTTP의 다중 부분/양식 데이터 인코딩은 일반적으로 파일 업로드에 사용되므로 클라이언트가 텍스트와 데이터를 모두 보낼 수 있습니다. 단일 요청의 이진 데이터. Apache Commons HttpClient 3.x는 이 기능을 지원했지만 버전 4.0에서는 제거되었습니다. 이 기사에서는 멀티파트/양식 데이터 POST 요청을 활성화하는 대체 Java 라이브러리를 살펴봅니다.

HttpClient 프로젝트에 접근하고 있음에도 불구하고 멀티파트 지원을 다시 구현하려는 알려진 노력은 없습니다. 따라서 개발자는 멀티파트/양식 데이터 요구 사항에 맞는 대체 솔루션을 찾아야 합니다.

솔루션

현재 안정 버전인 HttpClient 4.x는 보다 현대적인 솔루션을 제공합니다. 멀티파트 요청을 처리하기 위한 API입니다. 다음은 업데이트된 API를 사용하는 예입니다.

CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost uploadFile = new HttpPost("...");
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.addTextBody("field1", "yes", ContentType.TEXT_PLAIN);
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);
HttpEntity responseEntity = response.getEntity();

여전히 HttpClient 4.0(권장하지 않음)을 사용하는 개발자의 경우 다음 코드 조각은 더 이상 사용되지 않는 API를 사용합니다.

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);
HttpEntity resEntity = response.getEntity();

다른 Java 라이브러리 multipart/form-data POST 요청 지원:

  • Apache HTTP 구성 요소 HttpComponents-Client: 스레드로부터 안전한 최신 HTTP 클라이언트 라이브러리
  • Jersey 클라이언트 API: 사용하기 쉬운 높은 수준의 RESTful 웹 서비스 클라이언트 라이브러리
  • Grizzly REST 프레임워크: 프레임워크 RESTful 웹 서비스 구축을 위한

위 내용은 Java에서 Multipart/Form-Data POST 요청을 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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