Packages

  • package root

    Provided herein is API documentation for Scamper, the HTTP library for Scala.

    Provided herein is API documentation for Scamper, the HTTP library for Scala.

    Definition Classes
    root
  • package scamper

    Defines core types.

    Defines core types.

    HTTP Messages

    At the core of Scamper is HttpMessage, which is a trait that defines the fundamental characteristics of an HTTP message. HttpRequest and HttpResponse extend the specification to define characteristics specific to their respective message types.

    An HttpRequest is created using a factory method defined in its companion object. Or you can start with a RequestMethod and use builder methods to further define the request.

    import scamper.Header
    import scamper.Implicits.stringToUri
    import scamper.RequestMethod.Registry.Get
    
    val request = Get("/motd").setHeaders(
      Header("Host: localhost:8080"),
      Header("Accept: text/plain")
    )
    
    printf("Request Method: %s%n", request.method)
    printf("Target URI: %s%n", request.target)
    
    request.headers.foreach(println)
    
    val host: Option[String] = request.getHeaderValue("Host")

    An HttpResponse is created using a factory method defined in its companion object. Or you can start with a ResponseStatus and use builder methods to further define the response.

    import scamper.{ BodyParser, Header }
    import scamper.Implicits.stringToEntity
    import scamper.ResponseStatus.Registry.Ok
    
    val response = Ok("There is an answer.").setHeaders(
      Header("Content-Type: text/plain"),
      Header("Connection: close")
    )
    
    printf("Status Code: %s%n", response.statusCode)
    printf("Reason Phrase: %s%n", response.reasonPhrase)
    
    response.headers.foreach(println)
    
    val contentType: Option[String] = response.getHeaderValue("Content-Type")
    
    implicit val parser = BodyParser.text()
    
    printf("Body: %s%n", response.as[String])
    Definition Classes
    root
  • package cookies

    Provides specialized access to message cookies.

    Provides specialized access to message cookies.

    Request Cookies

    In HttpRequest, cookies are stringed together in the Cookie header. You can access them using extension methods provided by RequestCookies, with each cookie represented as PlainCookie.

    import scamper.Implicits.stringToUri
    import scamper.RequestMethod.Registry.Get
    import scamper.cookies.{ PlainCookie, RequestCookies }
    
    // Build request with cookies
    val req = Get("https://localhost:8080/motd").setCookies(
      PlainCookie("ID", "bG9zCg"), PlainCookie("Region", "SE-US")
    )
    
    // Print all cookies
    req.cookies.foreach(println)
    
    // Get cookies by name
    val id: Option[PlainCookie] = req.getCookie("ID")
    val region: Option[PlainCookie] = req.getCookie("Region")
    
    // Get cookie values by name
    assert(req.getCookieValue("ID").contains("bG9zCg"))
    assert(req.getCookieValue("Region").contains("SE-US"))
    Response Cookies

    In HttpResponse, the cookies are a collection of Set-Cookie header values. Specialized access is provided by ResponseCookies, with each cookie represented as SetCookie.

    import scamper.Implicits.stringToEntity
    import scamper.ResponseStatus.Registry.Ok
    import scamper.cookies.{ ResponseCookies, SetCookie }
    
    // Build response with cookies
    val res = Ok("There is an answer.").setCookies(
      SetCookie("ID", "bG9zCg", path = Some("/motd"), secure = true),
      SetCookie("Region", "SE-US")
    )
    
    // Print all cookies
    res.cookies.foreach(println)
    
    // Get cookies by name
    val id: Option[SetCookie] = res.getCookie("ID")
    val region: Option[SetCookie] = res.getCookie("Region")
    
    // Get attributes of ID cookie
    val path: String = id.flatMap(_.path).getOrElse("/")
    val secure: Boolean = id.map(_.secure).getOrElse(false)
    
    // Get cookie values by name
    assert(res.getCookieValue("ID").contains("bG9zCg"))
    assert(res.getCookieValue("Region").contains("SE-US"))
    Definition Classes
    scamper
  • Cookie
  • CookieStore
  • PersistentCookie
  • PlainCookie
  • RequestCookies
  • ResponseCookies
  • SetCookie
c

scamper.cookies

RequestCookies

implicit final class RequestCookies extends AnyVal

Provides access to request cookies in Cookie header.

Linear Supertypes
AnyVal, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. RequestCookies
  2. AnyVal
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new RequestCookies(request: HttpRequest)

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    Any
  2. final def ##(): Int
    Definition Classes
    Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def cookies: Seq[PlainCookie]

    Gets cookies.

  6. def getClass(): Class[_ <: AnyVal]
    Definition Classes
    AnyVal → Any
  7. def getCookie(name: String): Option[PlainCookie]

    Gets specified cookie.

    Gets specified cookie.

    name

    cookie name

  8. def getCookieValue(name: String): Option[String]

    Gets value of specified cookie.

    Gets value of specified cookie.

    name

    cookie name

  9. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  10. def putCookies(one: PlainCookie, more: PlainCookie*): HttpRequest

    Creates copy of request with supplied cookies.

    Creates copy of request with supplied cookies.

    one

    cookie

    more

    additional cookies

    Note

    Previous cookies with same name are removed.

  11. def putCookies(cookies: Seq[PlainCookie]): HttpRequest

    Creates copy of request with supplied cookie.

    Creates copy of request with supplied cookie.

    cookies

    new cookies

    Note

    Previous cookies with same name are removed.

  12. def removeCookies(one: String, more: String*): HttpRequest

    Creates copy of request excluding cookies with given names.

    Creates copy of request excluding cookies with given names.

    one

    cookie name

    more

    additional cookie names

  13. def removeCookies(names: Seq[String]): HttpRequest

    Creates copy of request excluding cookies with given names.

    Creates copy of request excluding cookies with given names.

    names

    cookie names

  14. def setCookies(one: PlainCookie, more: PlainCookie*): HttpRequest

    Creates copy of request with new set of cookies.

    Creates copy of request with new set of cookies.

    one

    new cookie

    more

    additional new cookies

  15. def setCookies(cookies: Seq[PlainCookie]): HttpRequest

    Creates copy of request with new set of cookies.

    Creates copy of request with new set of cookies.

    cookies

    new set of cookies

  16. def toString(): String
    Definition Classes
    Any

Inherited from AnyVal

Inherited from Any

Ungrouped