我有一个已添加的裸 sbt 项目"com.twitter" %% "finagle-http" % "6.33.0"
。我正在关注 Twitter Finagle 的快速入门指南。我的代码是直接复制粘贴:
import com.twitter.finagle.{Http, Service}
import com.twitter.finagle.http
import com.twitter.util.{Await, Future}
object Client extends App {
val client: Service[http.Request, http.Response] = Http.newService("www.scala-lang.org:80")
val request = http.Request(http.Method.Get, "/")
request.host = "www.scala-lang.org"
val response: Future[http.Response] = client(request)
response.onSuccess { resp: http.Response =>
println("GET success: " + resp)
println(resp.contentString) // modification 1
}
Await.ready(response)
println("needed this") // modification 2
}
没有“ modification 2
”,我根本没有输出。加上这个println
,我得到
needed this
GET success: Response("HTTP/1.1 Status(200)")
Process finished with exit code 0
- 为什么没有“
modification 2
”的响应打印? - 为什么没有
contentString
打印出"modification 1
"?
如果我在“”上设置断点,并使用当前状态modification 1
进行评估,则网站的 HTML 将根据需要返回。resp.contentString
如何在程序正常运行时打印它?