我有一个Scalatra的servlet的:如何在Scalatra中获得发布请求的正文?
post("/asdf") {
???
}
而且我的客户在帖子正文发送XML,所以我需要提取请求原始文本。我如何在Scalatra中做到这一点?
我有一个Scalatra的servlet的:如何在Scalatra中获得发布请求的正文?
post("/asdf") {
???
}
而且我的客户在帖子正文发送XML,所以我需要提取请求原始文本。我如何在Scalatra中做到这一点?
request.body
,您可以访问请求身体。所以,如果它是XML,你想把它当作一个NodeSeq,做到:
XML.loadString(request.body)
+1,好问题
你有Scalatra的路线内通过“请求”关键字访问servlet请求,所以和的getInputStream提供getContentLength如果访问后身体本身的XML字符串;即客户端而不是传递存储在命名字段中的xml作为表单发布的一部分。如果是后者,那么下面应该做的伎俩:
post("/foo" && request.getHeader("Accept-Encoding") contains "application/xml") {
val xml = XML.fromString(params("xml-param-field-name"))
}
如果你想使用上面的字符串解析,请参阅反垃圾XML集成在Scalatra Book
是新来斯卡拉和&& /包含这样^^我得到的编译错误。 – 2017-04-28 13:33:21
@ gursahib.singh.sahni不确定,自从我使用Scalatra以来已经有5年了;-)也许试试他们的[Gitter频道](https://gitter.im/scalatra/scalatra) – virtualeyes 2017-04-29 10:18:31
+1,“回答” – virtualeyes 2012-03-28 17:26:41
确保Content-Type不是'application/x-www-form-urlencoded'(请参阅https://groups.google.com/forum/#!topic/scalatra-user/lApjIJXiNqg上的Ross答案) – uthomas 2013-11-03 02:09:52