以下 Java 代码适用于我(Windows cURL + Micronaut 2.5.4):
package com.example;
import io.micronaut.http.HttpResponse;
import io.micronaut.http.MediaType;
import io.micronaut.http.annotation.Controller;
import io.micronaut.http.annotation.Post;
import io.micronaut.http.multipart.CompletedFileUpload;
import io.micronaut.scheduling.TaskExecutors;
import io.micronaut.scheduling.annotation.ExecuteOn;
@Controller("/test")
public class DemoController {
@ExecuteOn(TaskExecutors.IO)
@Post(value = "/{param1}/{param2}", consumes = MediaType.MULTIPART_FORM_DATA, produces = MediaType.TEXT_PLAIN)
public HttpResponse<String> post(CompletedFileUpload file, String param1, String param2) {
System.out.println("Param1: " + param1 + " Param2: " + param2 + " File name: " + file.getFilename() + " Size: " + file.getSize() + " Type: " + file.getContentType().get());
return HttpResponse.ok("Uploaded!");
}
}
卷曲命令:
.\curl.exe -v -F "file=@dummy.pdf" localhost:8080/test/param1/param2
* Trying ::1:8080...
* Connected to localhost (::1) port 8080 (#0)
> POST /test/param1/param2 HTTP/1.1
> Host: localhost:8080
> User-Agent: curl/7.77.0
> Accept: */*
> Content-Length: 13456
> Content-Type: multipart/form-data; boundary=------------------------2252ddfaf1589615
>
* We are completely uploaded and fine
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Date: Mon, 31 May 2021 17:52:23 GMT
< content-type: text/plain
< content-length: 9
< connection: keep-alive
<
Uploaded!* Connection #0 to host localhost left intact
输出:
Param1: param1 Param2: param2 File name: file Size: 13264 Type: application/pdf
Java 代码对您有用吗?也许这是一些 Kotlin/Groovy (?) 相关问题 [使用静态导入/短格式?]