Skip to content

v12.1.0

Compare
Choose a tag to compare
@losizm losizm released this 23 Mar 00:48
7758b77

What's New?

CookieStore

The scamper.client.HttpClient can be configured to use an instance of scamper.cookies.CookieStore to automatically store cookies received in HTTP responses. The client can then use these cookies to automatically add the appropriate cookies to outgoing HTTP requests.

import scamper.{ BodyParser, HttpResponse }
import scamper.Implicits.stringToUri
import scamper.client.HttpClient
import scamper.cookies.CookieStore
import scamper.headers.Location
import scamper.types.Implicits.stringToContentCodingRange

def printResponse(res: HttpResponse): Unit = {
  implicit val parser = BodyParser.text()

  println(res.startLine)
  res.headers.foreach(println)
  println()
  println(res.as[String])
}

// Create client from settings
val client = HttpClient.settings()
  .acceptEncodings("gzip", "deflate")
  .cookieStore(CookieStore()) // Add cookie store
  .create()

client.get("https://tampabay.com/") { res =>
  res.status.isRedirection match {
    case true =>
      // This request will automatically include
      // cookies set in previous response
      client.get(res.location)(printResponse)

    case false => printResponse(res)
  }
}