加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – Playframework WS API响应处理

发布时间:2020-12-16 08:43:16 所属栏目:安全 来源:网络整理
导读:我使用PlayFramework的Play WS API与外部API进行通信. 我需要处理收到的数据,但不知道如何处理.我得到一个响应,我想将它传递给其他函数,如 JSON对象.我怎么能做到这一点? 我用的代码你可以在下面看到. 谢谢! def getTasks = Action { Async { val promise
我使用PlayFramework的Play WS API与外部API进行通信.
我需要处理收到的数据,但不知道如何处理.我得到一个响应,我想将它传递给其他函数,如 JSON对象.我怎么能做到这一点?
我用的代码你可以在下面看到.
谢谢!

def getTasks = Action {
    Async {
      val promise = WS.url(getAppProperty("helpdesk.host")).withHeaders(
        "Accept" -> "application/json","Authorization" -> "Basic bi5sdWJ5YW5vdjoyMDEzMDcwNDE0NDc=" ).get()
      for {
        response <- promise
      } yield Ok((response.json  "Tasks"))
    }
  }

解决方法

I get a response,and I want to pass it to other function like an JSON Object.

我不确定我理解你的问题,但我猜你想要在返回客户端之前转换从WS调用中收到的json,并且这个转换可能需要几行代码.如果这是正确的,那么您只需要在yield语句周围添加大括号,这样您就可以对响应做更多的工作:

def getTasks = Action {
  Async {
    val promise = WS.url(getAppProperty("helpdesk.host")).withHeaders(
      "Accept" -> "application/json","Authorization" -> "Basic bi5sdWJ5YW5vdjoyMDEzMDcwNDE0NDc=" ).get()
    for {
      response <- promise
    } yield {
      // here you can have as many lines of code as you want,// only the result of the last line is yielded
      val transformed = someTransformation(response.json)
      Ok(transformed)
    }  
  }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读