我正在测试我的控制器。
我有以下测试代码来测试一个简单的csv上传,当我尝试从一些简单的休息客户端上传时,文件存在并且端点工作
我得到:400意外结束输入。
尝试了我能想到的一切。感谢
val controller = application.injector.instanceOf[MyController] val file = play.api.libs.Files.TemporaryFile(FileUtils.toFile(getClass.getResource(MyCSV))) val data = new MultipartFormData(Map(), List( FilePart("file", "sample.csv", Some("application/csv"), file) ), List()) def fakeMultipartRequest: FakeRequest[AnyContentAsMultipartFormData] = FakeRequest(HttpVerbs.POST, "/upload") .withHeaders(("Content-Type", "multipart/form-data; boundary=***boundry***")) .withMultipartFormDataBody(data) val result = call(controller.upload(), fakeMultipartRequest) val str = contentAsString(result) status(result) shouldBe OK
我的控制器很简单:
def upload() = Action.async(parse.multipartFormData) { implicit request => ...
答案 0 :(得分:0)
我遇到了同样的问题。在我的情况下,这是由于一些自定义Filter从请求中读取令牌并将其解析为json。看看你使用的过滤器
答案 1 :(得分:0)
我遇到了同样的问题,发现您需要设置dataParts
的{{1}}属性:
MultipartFormData
这样,我也不必设置content-type / boundary标头。