我正在尝试测试控制器上传文件。控制器接收多部分请求。
在测试中,我正在以这种方式创建一个FakeRequest
val tempFile = play.api.libs.Files.SingletonTemporaryFileCreator.create("prefix", "txt")
val file = FilePart("upload", "hello.txt", Option("text/plain"), tempFile)
val controller = new LoadController(controllerComponents)
val formData = MultipartFormData(
dataParts = Map(),
files = Seq(file),
badParts = Seq())
val response = controller.upload.apply(FakeRequest(POST, "/upload").
withHeaders(HeaderNames.CONTENT_TYPE -> "multipart/form-data; boundary=------------------------968e587c4173725c").
withMultipartFormDataBody(formData))
控制器接收要在upload
密钥中上传的文件。如果我使用curl,postman或其他休息客户端测试控制器,它可以工作,但在测试中,我总是收到消息[Unexpected end of input]
,好像upload
键是空的。
提前致谢
答案 0 :(得分:3)
我遇到了同样的问题,发现您需要设置dataParts
的{{1}}属性:
MultipartFormData
这样,我也不必设置content-type / boundary标头。