我有一个scalatra servlet:
post("/asdf") {
???
}
Run Code Online (Sandbox Code Playgroud)
我的客户在邮件正文中发送xml,因此我需要从请求中提取原始文本.我如何在scalatra中做到这一点?
Jan*_*anx 20
request.body
Run Code Online (Sandbox Code Playgroud)
让您访问请求正文.因此,如果它是XML并且您希望它作为NodeSeq,请执行以下操作:
XML.loadString(request.body)
Run Code Online (Sandbox Code Playgroud)
+1,好问题
您可以通过Scalatra路由中的“ request”关键字访问Servlet Request,因此,如果发布主体本身是xml字符串,则getInputStream和getContentLength可以提供访问权限。即客户端不传递存储在命名字段中的xml作为表单发布的一部分。如果是后者,则以下应该可以解决问题:
post("/foo" && request.getHeader("Accept-Encoding") contains "application/xml") {
val xml = XML.fromString(params("xml-param-field-name"))
}
Run Code Online (Sandbox Code Playgroud)
如果要从字符串使用以上解析,请参见Scalatra Book中的Anti-XML Integration
归档时间: |
|
查看次数: |
4055 次 |
最近记录: |