scamper.http.client

Members list

Type members

Classlikes

final class ClientHttpMessage(message: HttpMessage) extends AnyVal

Adds client extensions to HttpMessage.

Adds client extensions to HttpMessage.

Attributes

Supertypes
class AnyVal
trait Matchable
class Any
final class ClientHttpRequest(request: HttpRequest) extends AnyVal

Adds client extensions to HttpRequest.

Adds client extensions to HttpRequest.

Attributes

Supertypes
class AnyVal
trait Matchable
class Any
final class ClientHttpResponse(response: HttpResponse) extends AnyVal

Adds client extensions to HttpResponse.

Adds client extensions to HttpResponse.

Attributes

Supertypes
class AnyVal
trait Matchable
class Any

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

Key Value
accept */*
acceptEncodings Nil
bufferSize 8192
readTimeout 30000
continueTimeout 1000
keepAlive false
coookies CookieStore.Null
resolveTo (Not set)
trust (Not set)
incoming (Not set)
outgoing (Not set)

Attributes

Constructor

Creates client settings.

Supertypes
class Object
trait Matchable
class Any
trait HttpClient

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.{ HttpClient, toClientHttpRequest }
import scamper.http.headers.{ toAccept, toAcceptLanguage }
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.

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
object HttpClient

Provides factory for HttpClient.

Provides factory for HttpClient.

Attributes

Companion
trait
Supertypes
class Object
trait Matchable
class Any
Self type
HttpClient.type
case class RequestAborted(message: String) extends HttpException

Indicates request is aborted.

Indicates request is aborted.

Attributes

Supertypes
trait Product
trait Equals
class RuntimeException
class Exception
class Throwable
trait Serializable
class Object
trait Matchable
class Any
Show all
@FunctionalInterface

Defines filter for outgoing request.

Defines filter for outgoing request.

Attributes

Supertypes
class Object
trait Matchable
class Any
@FunctionalInterface

Defines filter for incoming response.

Defines filter for incoming response.

Attributes

Supertypes
class Object
trait Matchable
class Any
@FunctionalInterface
trait ResponseHandler[T]

Defines handler for incoming response.

Defines handler for incoming response.

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes

Givens

Givens

Adds client extensions to HttpMessage.

Adds client extensions to HttpMessage.

Attributes

Adds client extensions to HttpRequest.

Adds client extensions to HttpRequest.

Attributes

Adds client extensions to HttpResponse.

Adds client extensions to HttpResponse.

Attributes