Uri

object Uri extends UriPlatform
Companion
class
trait Product
trait Mirror
class Object
trait Matchable
class Any

Type members

Classlikes

final case class Authority(userInfo: Option[UserInfo], host: Host, port: Option[Int]) extends Renderable
Companion
object
object Authority
Companion
class
sealed trait Host extends Renderable
Companion
object
object Host
Companion
class
final case class Ipv4Address(address: Ipv4Address) extends Ipv4AddressPlatform with Host with Ordered[Ipv4Address] with Serializable
Companion
object
object Ipv4Address extends Ipv4AddressCompanionPlatform
Companion
class
final case class Ipv6Address(address: Ipv6Address) extends Ipv6AddressPlatform with Host with Ordered[Ipv6Address] with Serializable
Companion
object
object Ipv6Address extends Ipv6AddressCompanionPlatform
Companion
class
final class Path extends Renderable
Companion
object
object Path
Companion
class
final case class RegName(host: CIString) extends Host
Companion
object
object RegName
Companion
class
final class Scheme extends Ordered[Scheme]

A org.http4s.Uri may begin with a scheme name that refers to a specification for assigning identifiers within that scheme.

A org.http4s.Uri may begin with a scheme name that refers to a specification for assigning identifiers within that scheme.

If the scheme is defined, the URI is absolute. If the scheme is not defined, the URI is a relative reference.

See also
Companion
object
object Scheme
Companion
class
final case class UserInfo extends Ordered[UserInfo]

The userinfo subcomponent may consist of a user name and, optionally, scheme-specific information about how to gain authorization to access the resource. The user information, if present, is followed by a commercial at-sign ("@") that delimits it from the host.

The userinfo subcomponent may consist of a user name and, optionally, scheme-specific information about how to gain authorization to access the resource. The user information, if present, is followed by a commercial at-sign ("@") that delimits it from the host.

Value Params
password

The password, decoded. Passing a password in clear text in a URI is a security risk and deprecated by RFC 3986, but preserved in this model for losslessness.

username

The username component, decoded.

See also
Companion
object
object UserInfo
Companion
class

Types

type Fragment = String

Inherited types

type MirroredElemLabels <: Tuple

The names of the product elements

The names of the product elements

Inherited from
Mirror
type MirroredLabel <: String

The name of the type

The name of the type

Inherited from
Mirror

Value members

Concrete methods

def decode(toDecode: String, charset: Charset, plusIsSpace: Boolean, toSkip: Char => Boolean): String

Percent-decodes a string.

Percent-decodes a string.

Value Params
charset

the charset of percent-encoded characters

plusIsSpace

true if '+' is to be interpreted as a ' '

toDecode

the string to decode

toSkip

a predicate of characters whose percent-encoded form is left percent-encoded. Almost certainly should be left empty.

def encode(toEncode: String, charset: Charset, spaceIsPlus: Boolean, toSkip: Char => Boolean): String

Percent-encodes a string. Depending on the parameters, this method is appropriate for URI or URL form encoding. Any resulting percent-encodings are normalized to uppercase.

Percent-encodes a string. Depending on the parameters, this method is appropriate for URI or URL form encoding. Any resulting percent-encodings are normalized to uppercase.

Value Params
charset

the charset to use for characters that are percent encoded

spaceIsPlus

if space is not skipped, determines whether it will be rendreed as a "+" or a percent-encoding according to charset.

toEncode

the string to encode

toSkip

a predicate of characters exempt from encoding. In typical use, this is composed of all Unreserved URI characters and sometimes a subset of Reserved URI characters.

def fromString(s: String): ParseResult[Uri]

Decodes the String to a Uri using the RFC 3986 uri decoding specification

Decodes the String to a Uri using the RFC 3986 uri decoding specification

def pathEncode(s: String, charset: Charset): String

Remove dot sequences from a Path, per RFC 3986 Sec 5.2.4 Adapted from" https://github.com/Norconex/commons-lang/blob/c83fdeac7a60ac99c8602e0b47056ad77b08f570/norconex-commons-lang/src/main/java/com/norconex/commons/lang/url/URLNormalizer.java#L429

def requestTarget(s: String): ParseResult[Uri]

Decodes the String to a Uri using the RFC 7230 section 5.3 uri decoding specification

Decodes the String to a Uri using the RFC 7230 section 5.3 uri decoding specification

def resolve(base: Uri, reference: Uri): Uri

Resolve a relative Uri reference, per RFC 3986 sec 5.2

Resolve a relative Uri reference, per RFC 3986 sec 5.2

def unsafeFromString(s: String): Uri

Parses a String to a Uri according to RFC 3986. If decoding fails, throws a ParseFailure.

Parses a String to a Uri according to RFC 3986. If decoding fails, throws a ParseFailure.

For totality, call fromString. For compile-time verification of literals, call #uri.

Implicits

Implicits

implicit val catsInstancesForHttp4sUri: Hash[Uri] & Order[Uri] & Show[Uri]