2016-06-15 25 views
3

我对一个虚拟端点测试服务,用下面的代码:“失踪界头”与ws.url Scala中发挥

ws.url(dummyService).withHeaders(HeaderNames.CONTENT_TYPE -> "multipart/form-data; boundary=-----{}}AAA{{}-----").post(myData) 

这产生请求确定,报头设置正确。

在我的模拟服务,我处理响应,像这样:

def checkData = Action(parse.multipartFormData) { request => 
    request.body.files.find(_.filename.endsWith("testfail.pdf")) match { 
     case Some(invalidFile) => BadRequest("Parse Fail") 
     case None => Ok("Parse Success") 
    } 
    } 

当我运行测试,我得到一个错误400,和以下消息:

For request 'POST /TEST/process' [Missing boundary header] 

我是什么做错了?

回答

1

为了使用Action(parse.multipartFormData)您必须确保相应的POST请求使用multipart/form-datamore on when to use it)的表单编码。

在你想定义表单模板中的这样换句话说:

@helper.form(action = routes.MyApp.upload, 'enctype -> "multipart/form-data") { 
    // ... 
} 

发送POST与在[Missing boundary header]错误不同的编码结果。