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
keepAlivefalse
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 def ClientHttpMessage(message: HttpMessage): ClientHttpMessage

Adds client extensions to HttpMessage.

Adds client extensions to HttpMessage.

final implicit def ClientHttpRequest(request: HttpRequest): ClientHttpRequest

Adds client extensions to HttpRequest.

Adds client extensions to HttpRequest.

final implicit def ClientHttpResponse(response: HttpResponse): ClientHttpResponse

Adds client extensions to HttpResponse.

Adds client extensions to HttpResponse.