I have a scalatra servlet:
post("/asdf") {
???
}
And my clients send xml in post body, so I need to extract raw text from request. How do I do it in scalatra?
request.body
gives you access to the request body. So if it is XML and you want it as a NodeSeq, do:
XML.loadString(request.body)
+1, good question
You have access to Servlet Request via "request" keyword within a Scalatra route, so getInputStream and getContentLength provide access if the post body itself is the xml string; i.e. client is not passing xml stored in named field as part of a form post. If the latter, then the below should do the trick:
post("/foo" && request.getHeader("Accept-Encoding") contains "application/xml") {
val xml = XML.fromString(params("xml-param-field-name"))
}
If you want to use above parse from string, see Anti-XML Integration in the Scalatra Book
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With