scamper.http.client

Type members

Classlikes

final implicit
class ClientHttpMessage(message: HttpMessage) extends AnyVal

Adds client extensions to HttpMessage.

Adds client extensions to HttpMessage.

final implicit
class ClientHttpRequest(request: HttpRequest) extends AnyVal

Adds client extensions to HttpRequest.

Adds client extensions to HttpRequest.

final implicit
class ClientHttpResponse(response: HttpResponse) extends AnyVal

Adds client extensions to HttpResponse.

Adds client extensions to HttpResponse.

Defines HTTP client settings.

Defines HTTP client settings.

ClientSettings is a mutable structure. With each applied change, the settings are modified and returned. After applying the desired settings, a client is created using a factory method.

Default Settings

KeyValue
accept*/*
acceptEncodingsNil
bufferSize8192
readTimeout30000
continueTimeout1000
coookiesCookieStore.Null
trust(Not set)
incoming(Not set)
outgoing(Not set)
Constructor

Creates client settings.

Defines HTTP client.

Defines HTTP client.

A client can be created using the HttpClient companion object.

import scala.language.implicitConversions

import scamper.http.{ BodyParser, stringToUri }
import scamper.http.client.HttpClient

given BodyParser[String] = BodyParser.string()

// Create HttpClient instance
val client = HttpClient()

def getMessageOfTheDay(): Either[Int, String] =
 // Use client instance
 client.get("http://localhost:8080/motd") { res =>
   res.isSuccessful match
     case true  => Right(res.as[String])
     case false => Left(res.statusCode)
 }

And, if a given client is in scope, you can make use of send() on the request itself.

import scala.language.implicitConversions

import scamper.http.{ BodyParser, stringToUri }
import scamper.http.RequestMethod.Registry.Get
import scamper.http.client.{ ClientHttpRequest, HttpClient }
import scamper.http.headers.{ Accept, AcceptLanguage }
import scamper.http.types.{ stringToMediaRange, stringToLanguageRange }

given HttpClient = HttpClient()
given BodyParser[String] = BodyParser.string(4096)

Get("http://localhost:8080/motd")
 .setAccept("text/plain")
 .setAcceptLanguage("en-US; q=0.6", "fr-CA; q=0.4")
 .send(res => println(res.as[String])) // Send request using client

See also ClientSettings for information about configuring the HTTP client before it is created.

Companion
object
object HttpClient

Provides factory for HttpClient.

Provides factory for HttpClient.

Companion
class
case
class RequestAborted(message: String) extends HttpException

Indicates request is aborted.

Indicates request is aborted.

@FunctionalInterface

Defines filter for outgoing request.

Defines filter for outgoing request.

@FunctionalInterface

Defines filter for incoming response.

Defines filter for incoming response.

@FunctionalInterface

Defines handler for incoming response.

Defines handler for incoming response.

Implicits

Implicits

final implicit

Adds client extensions to HttpMessage.

Adds client extensions to HttpMessage.

final implicit

Adds client extensions to HttpRequest.

Adds client extensions to HttpRequest.

final implicit

Adds client extensions to HttpResponse.

Adds client extensions to HttpResponse.