0
Я объявляются маршруты с ключевым словом: compressResponse
спрей Gzip кодированное сообщение, только если код состояния 200 OK
(compressResponse(Gzip) & respondWithMediaType(`application/json`)) {
super.routes
}
ret.status match {
case ResponseResult.StatSuccess => complete(200, ret.toString)
case _ => complete(InternalServerError, ret.toString)
}
Тем не менее, я обнаружил, что ret
кодируется как Gzip только с завершением 200. 400, 500, спрей просто верните обычный текст.
Да, это поведение по умолчанию, см https://github.com/spray/spray/blob/master/spray -httpx/SRC/основной/Scala/спрей/httpx/кодирование/Encoder.scala # L57. Вы можете определить собственную версию 'Gzip', используя' new Gzip (filter) 'где фильтр - это предикат, который решает, следует ли кодировать' HttpMessage'. – jrudolph