Java 9 HttpClient send a multipart/form-data request

前端 未结 6 1230
孤街浪徒
孤街浪徒 2020-12-09 05:05

Below is a form:

6条回答
  •  陌清茗
    陌清茗 (楼主)
    2020-12-09 05:10

    I recently released a library providing useful extensions to Java 11's HttpClient. The library contains a MultipartBodyPublisher with a convenient and easy to use MultipartBodyPublisher.Builder. Here is an example using it (JDK11 or later is required):

    MultipartBodyPublisher multipartBody = MultipartBodyPublisher.newBuilder()
        .textPart("foo", "foo_text")
        .filePart("bar", Path.of("path/to/file.txt"))
        .formPart("baz", BodyPublishers.ofInputStream(() -> ...))
        .build();
    HttpRequest request = HttpRequest.newBuilder()
        .uri(URI.create("https://example.com/"))
        .POST(multipartBody)
        .build();
    

    Note that you can also add any BodyPublisher (or HttpHeaders) you want. See the user guide for more details.

提交回复
热议问题