我正在使用spray client的请求级别api来请求服务器。
这是我的代码:
var request: HttpRequest = HttpRequest(method, uri, headers, HttpEntity(MediaTypes.`application/json`, json.toString()))
val result = for {
resp <- io.ask(request).mapTo[HttpResponse]
} yield {
println("Response:" + resp)
}
result onComplete {
case Success(value) => println("success" + value)
case Failure(ex) => println("failure" + ex)
}
我没有按预期得到回复。执行上下文将变为"失败"。我收到ChunkedResponseStart(HttpResponse(200 OK,Empty,List(Transfer-Encoding: chunked)
而不是HttpResponse本身,mapTo失败了。
我不确定为什么会发生这种情况以及如何解决相同的问题。
我认为
这对你有帮助http://spray.io/documentation/1.2.2/spray-client/
val response: Future[HttpResponse] = pipeline(Get("http://spray.io/"))
你可以写这样的东西
val req: Future[HttpResponse] = pipeline(Post("http://localhost:xxxx/...")
.withHeaders(RawHeader("Name", param))
.withEntity(HttpEntity("application/json", data.toJson.toString())))
和提取
def extract(req: Future[HttpResponse]): HttpResponse = Await.result(req, 40.seconds)
获取您可以使用的信息
def getStatusCode(response: HttpResponse) = response.status.intValue
和
if(getStatusCode(response) == 200) println(~better use same test lib or match~)