类型不匹配;发现:scala.concurrent.Future [play.api.libs.ws.R
发布时间:2020-12-16 18:40:46 所属栏目:安全 来源:网络整理
导读:我正在尝试向Pusher api发布帖子请求,但是我无法返回正确的类型,我的类型不匹配;发现: scala.concurrent.Future [play.api.libs.ws.Response]必需:play.api.libs.ws.Response def trigger(channel:String,event:String,message:String): ws.Response = {va
我正在尝试向Pusher api发布帖子请求,但是我无法返回正确的类型,我的类型不匹配;发现:
scala.concurrent.Future [play.api.libs.ws.Response]必需:play.api.libs.ws.Response
def trigger(channel:String,event:String,message:String): ws.Response = { val domain = "api.pusherapp.com" val url = "/apps/"+appId+"/channels/"+channel+"/events"; val body = message val params = List( ("auth_key",key),("auth_timestamp",(new Date().getTime()/1000) toInt ),("auth_version","1.0"),("name",event),("body_md5",md5(body)) ).sortWith((a,b) => a._1 < b._1 ).map( o => o._1+"="+URLEncoder.encode(o._2.toString)).mkString("&"); val signature = sha256(List("POST",url,params).mkString("n"),secret.get); val signatureEncoded = URLEncoder.encode(signature,"UTF-8"); implicit val timeout = Timeout(5 seconds) WS.url("http://"+domain+url+"?"+params+"&auth_signature="+signatureEncoded).post(body } 解决方法
您使用post发出的请求是异步的.该调用立即返回,但不返回Response对象.相反,它返回一个Future [Response]对象,一旦http请求异步完成,它将包含Response对象.
如果要在请求完成之前阻止执行,请执行以下操作: val f = Ws.url(...).post(...) Await.result(f) 查看有关期货here的更多信息. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 嘲笑 – 有没有人使用$httpBackend(模块ngMockE2E中的服务)
- scala – Spark是否优化了链式转换?
- 添加了Exchange WebService引用找不到ExchangeServiceBindi
- 为什么Scalaz中的A => M [A]没有> =>半群?
- (Swagger)一个终端和后台开发对api接口管理工具
- twitter-bootstrap – 使用Bootstrap 3.1修复Firefox文件输
- angularjs – 全局禁用ng-animate,然后启用某些元素
- 【数据结构】绪论 总结
- 在Docker中运行PostgreSQL + pgAdmin 4
- 基于Bootstrap的分页组件bootstrap-pager使用说明