我有一個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