Scala LiftWebREST服务器POST请求

Scala LiftWebREST服务器POST请求,scala,rest,lift,Scala,Rest,Lift,我正在尝试创建一个LiftWebREST服务器,它接受小型内部测试的POST请求,并通过SpringFramework的RestTemplate#postForObject(“http://localhost:9090/api/validate/,请求,字符串。类)。我通过了 我的RestController.scala是 13 object RestController extends RestHelper { 14 val data = LiftRules.loadResourceA

我正在尝试创建一个LiftWebREST服务器,它接受小型内部测试的
POST
请求,并通过SpringFramework的
RestTemplate#postForObject(“http://localhost:9090/api/validate/,请求,字符串。类)。我通过了

我的RestController.scala是

 13 object RestController extends RestHelper {
 14   val data = LiftRules.loadResourceAsXml("/ValidationReply.xml");

 21  serve {
 22    case "api" :: "validate" :: _ XmlPost xml -> _ => <system>
 26             <id>TEST</id>
 27             <name>PILOT</name>
 28             <version>1</version>
 29             <ip_address>192.168.2.18</ip_address>
 30             <connector>
 31                 <id>UPD</id>
 32             </connector>
 33         </system>

124    case JsonGet("api" :: "validate" :: _, _) => JString("Validated")
125  }
126 }

restUrl=”时http://localhost:9090/api/validate“
,我将调用第二个api,并回复
“已验证”
。如何在liftweb中发出
POST
请求?

您正在寻找一个
POST
即XML。作为

它通过一个定义TestPost提取器的特性传递。 请求是否为POST,在POST正文中包含JSON或XML数据,以及 响应中需要JSON或XML的内容

我不确定你是在提出请求,还是在发送数据。但是,假设您只是发出post请求,我会尝试在正文中发布XML。否则,您可以尝试使用
Post
而不是
XmlPost
重写规则,如:

case Post("api" :: "validate" :: Nil, req) => 
          <system>
              <id>TEST</id>
              <name>PILOT</name>
              <version>1</version>
              <ip_address>192.168.2.18</ip_address>
              <connector>
                  <id>UPD</id>
              </connector>
          </system>
case Post(“api”::“验证”::Nil,req)=>
试验
领航员
1.
192.168.2.18
UPD

您的帖子url似乎应该是:
http://localhost:9090/api/validate.xml
。注意.xmlNo,找不到相同的
URL/api/validate.xml
错误。在上面的api中,我需要在不使用
xml
的情况下请求,但URL在使用或不使用
xml
时都不起作用。甚至连
case“api”:“validate”:\uPOST xml->\u=>
这对您有用吗:
case Post(“api”:“validate”::Nil,req)=>
?是的,它可以在请求中使用或不使用
xml
数据。\,/请修改你的答案,我会接受的。
case Post("api" :: "validate" :: Nil, req) => 
          <system>
              <id>TEST</id>
              <name>PILOT</name>
              <version>1</version>
              <ip_address>192.168.2.18</ip_address>
              <connector>
                  <id>UPD</id>
              </connector>
          </system>