Multipart/form-data Wildfly 上的 RESTEasy 错误

Multipart/form-data RESTEasy error on Wildfly

我正在尝试在接受文件上传的 Wildfly 应用服务器上设置 REST API。在测试它时,我遇到了以下问题。尝试使用 Content-Type: multipart/form-data 上传时,我收到以下响应:

HTTP Status Code: 400
Content-Type: text/html;charset=UTF-8
Body: "java.io.IOException: RESTEASY007550: Unable to get boundary for multipart"

这是尝试的请求。

Headers 
{
  "content-length": "233",
  "content-type": "multipart/form-data",
  "accept-encoding": "multipart/form-data",
  "authorization": "Bearer ommitted"
  "user-agent": "PostmanRuntime/7.28.3"
}

Body
----------------------------976685076323434093219932
Content-Disposition: form-data; name="file"; filename="import.csv"
Content-Type: text/csv

destination
1234567890

----------------------------976685076323434093219932--

API端点配置如下:

import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import org.jboss.resteasy.plugins.providers.multipart.MultipartFormDataInput;

@Stateless
@Path("/import")
@Produces(MediaType.APPLICATION_JSON)
public class ImportAPI {

    @POST
    @Path("/{id}/do")
    @Consumes(MediaType.MULTIPART_FORM_DATA)
    public Response doImport(
        @Context HttpServletRequest request,
        @PathParam("id") Integer campaignId,
        MultipartFormDataInput input) {
        // Code omitted
        return Response.ok().build();
    }
}

发生错误时服务器日志上没有打印错误日志。我正在使用 Wildfly 23 和 RESTEasy 3.15。1.Final(由 Wildfly App Server 提供)。

<dependency>
    <groupId>org.jboss.resteasy</groupId>
    <artifactId>resteasy-multipart-provider</artifactId>
    <version>3.15.1.Final</version>
    <scope>provided</scope>
</dependency>

我不完全确定请求或 API 端点是否有问题,我希望对此有所了解。

Content-Type字段错误。在您的示例中,它需要类似于:

"Content-Type": multipart/form-data; boundary="--------------------------976685076323434093219932"

减号(破折号)字符比示例的当前正文中显示的字符少两个。