簡體   English   中英

如何使用 Java Http 客戶端發送具有多部分/表單數據主體的 PUT 請求?

[英]How to send a PUT request with multipart/form-data body with Java Http Client?

我正在使用java.net.http上提供的HttpClientHttpRequest 我已經成功發送了一些 GET 和 POST 請求,但我不知道如何發送帶有multipart/form-data正文的 PUT/POST 請求:

HttpRequest dataRequest = HttpRequest.newBuilder()
        .header("accept", "*/*")
        .header("Content-Type", "multipart/form-data")
        // .POST() ??
        .uri(URI.create(DATA_URL)
        .build();

此請求的 curl 等效項類似於:

curl -X PUT "https://www.example.com/data" -H  "accept: */*" -H  "Content-Type: multipart/form-data" -F "file=@audiofile.wav;type=audio/wav"

我應該在POST()PUT()方法中使用某種BodyPublishers來實現嗎? 有什么線索嗎?

HttpClient API 尚不支持開箱即用的 Multipart/form-data。

在 JDK 16 中,有一個新的HttpRequest.BodyPublishers.concat(BodyPublisher...)方法可用於幫助構建由來自異構源的字節串聯構建的請求主體。 但是您必須手動組合所有不同的部分,並在需要時/如果需要處理 base64 編碼。

你也可以試試甲醇

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM