我試圖讓外部(以欺騙服務器)REST得到我的欺騙代碼的要求,對URI是:http://service.site-dev.com/subservices/listTwitter Finagle客戶端:如何進行外部REST API調用?
我使用在例子中,客戶端代碼:https://twitter.github.io/scala_school/finagle.html#client
我(Scala編寫的)代碼如下所示,但它只是掛起即使我設置了超時限制:
val client: Service[HttpRequest, HttpResponse] = ClientBuilder()
.codec(Http())
.hosts("http://service.site-dev.com") // If >1 host, client does simple load-balancing
.hostConnectionLimit(1)
.tcpConnectTimeout(1.second)
.requestTimeout(20.seconds)
.retries(2)
.build()
val req = new DefaultHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET, "http://service.site-dev.com/subservices/list")
val f = client(req) // Client, send the request
// Handle the response:
f onSuccess { res =>
println("got response", res)
} onFailure { exc =>
println("failed :-(", exc)
}
我懷疑我的主機參數是錯誤的?但是我想在這裏放置什麼?這是對外部REST服務的調用?
您應該使用Future.Await,以便您的主線程不會死亡或完成。 – Falmarri 2014-10-31 22:09:14