是的,Java WebClient 可以用于文件上傳。WebClient 是 Java 11 中引入的一個新的響應式 Web 客戶端 API,它提供了對 HTTP 客戶端功能的訪問。要使用 WebClient 進行文件上傳,你需要遵循以下步驟:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
WebClient webClient = WebClient.create("http://example.com");
或者
WebClient webClient = WebClient.builder()
.baseUrl("http://example.com")
.build();
MultipartFile
對象中。你可以使用 MultipartFile
類的方法(如 readFile()
)來讀取文件內容。MultipartFile file = new MultipartFile("path/to/your/file.txt");
byte[] fileContent = file.getBytes();
post()
方法發送一個包含文件的 POST 請求。在請求體中,將文件內容 MultipartBodySpec
對象傳遞。Mono<String> response = webClient.post()
.uri("/upload")
.contentType(MediaType.MULTIPART_FORM_DATA)
.body(Mono.just(new MultipartBodySpec()
.addFormDataPart("file", file.getOriginalFilename(),
new ByteArrayResource(fileContent))), String.class);
在這個例子中,我們向 /upload
端點發送了一個包含文件的 POST 請求,并將文件名設置為 “file.txt”。響應將是一個包含服務器響應內容的 Mono<String>
對象。
注意:這個例子使用了 Spring WebFlux 的 WebClient,它是基于 Reactive Streams 規范的。這意味著 WebClient 的操作是異步的,并且可以處理大量并發請求。