我正在为 Jenkins 构建服务器编写一个 Spray 客户端。我可以查询具有多达 18 个构建结果的项目,但具有 31 个构建结果的项目具有我的客户从未收到响应的行为。我可以成功地做到这一点,curl
所以我不知道接下来要看什么。
我不相信这与分块传输编码有关,因为我在成功的响应中看不到该标头-尽管我对应该发生的事情的理解可能有误。
object JenkinsBuildStatus extends App {
implicit val system = ActorSystem("JenkinsBuildStatus")
import system.dispatcher // execution context for futures
val log = Logging(system, getClass)
val pipeline: HttpRequest => Future[HttpResponse] = (
addCredentials(BasicHttpCredentials("username","foobar"))
~> addHeader("Accept", MediaRanges.`*/*`.value)
~> addHeader("User-Agent", "curl/7.37.1")
~> logRequest(log)
~> sendReceive
~> logResponse(log)
)
val response: Future[HttpResponse] = pipeline(Get("https://jenkinsbuilds.corp.com/jenkins/job/Project-Java1.8/api/json/"))
response onComplete {
case Success(data) => {
log.info (data.toString())
shutdown()
}
case Failure(error) => {
log.error(error, "Failure with web client")
shutdown()
}
}
def shutdown(): Unit = {
IO(Http).ask(Http.CloseAll)(1.second).await
system.shutdown()
}
}