Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 播放Http Post的Scala代理框架_Java_Scala_Playframework_Proxy_Playframework 2.0 - Fatal编程技术网

Java 播放Http Post的Scala代理框架

Java 播放Http Post的Scala代理框架,java,scala,playframework,proxy,playframework-2.0,Java,Scala,Playframework,Proxy,Playframework 2.0,我在玩!框架,并尝试为http请求、GET和POST创建代理 GET操作似乎在工作,问题在于POST操作,我无法传递请求的有效负载 我尝试了一些方法,比如下面的代码,但似乎没有一种有效 def postAction(query: String) = Action.async { implicit request => val data = if (request.body.asText != None) request.body.asText.get else "" W

我在玩!框架,并尝试为http请求、GET和POST创建代理

GET操作似乎在工作,问题在于POST操作,我无法传递请求的有效负载

我尝试了一些方法,比如下面的代码,但似乎没有一种有效

  def postAction(query: String) = Action.async { implicit request =>
    val data = if (request.body.asText != None) request.body.asText.get else ""
    WS.url(DEMO_URL + query).post(data).map(resp => Ok(resp.body).as("application/json"))
  }

最后要提到的是,我对这两种游戏都是新手!和scala。

我必须添加
parse.json
Action.async(parse.json)

现在的代码更简单,如下所示:

  def postAction(query: String) = Action.async(parse.json) { implicit request =>
    WS.url(DEMO_URL + query).post(request.body).map(resp =>
      Ok(resp.body).as("application/json")
    )
  }

query
是否正确传递?您没有向
WS
请求添加任何标题。你不应该至少包括
内容类型
?现在,由于您正在将
postAction
的主体解析为
String
,因此默认情况下,内容类型将为
text/plain
。感谢大家的评论,上面的代码将数据作为字符串发送到服务器,但我需要它作为Json发送。什么是
val data
?这应该是JSON吗。“似乎没有起作用”——比“不起作用”更具体一些是有帮助的。第二行可以这样写:
val data=request.body.asText.getOrElse(“”)