Search code examples
scalahttp-headerssprayakka-http

Scala/Spray/Akka unable to leverage mapRequest


I am new to Scala/Spray/AKKA so please excuse this dumb requests. I have the following Directive and it is being called as the first logger line ("inside") is showing up in logs. However, anything inside mapRequest{} is skipped over. The logging line ("headers:") isn't showing up

private def directiveToGetHeaders(input: String) : Directive0 = {
    logger.info("inside")
    mapRequest { request =>
    val headList: List[HttpHeader] = request.headers
        logger.info("headers: " + headList.size)
        request
    }
}

I am not sure what I did wrong. My goal is to pull out all the HTTP headers. Any tip/pointer much appreciated. Thanks

-v


Solution

  • You can use extractRequest directive for getting headers.

    private def directiveToGetHeaders(input: String) : Directive0 = {
        logger.info("inside")
        extractRequest { request =>
          val headList: Seq[HttpHeader] = request.headers
          logger.info("headers: " + headList.size)
          complete(HttpResponse())
        }
    }