package http
- Alphabetic
- By Inheritance
- http
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
-
sealed abstract
class
Chunk extends AnyRef
Represents a piece of an HTTP stream, commonly referred to as a chunk.
Represents a piece of an HTTP stream, commonly referred to as a chunk.
HTTP semantics treat trailing headers as the end of stream signal hence no writes (neither trailers nor data) are allowed after them, only
close(EOS) is valid. This is typically enforced by an HTTP dispatcher in both clients and servers.Similarly, when consumed via com.twitter.io.Reader, trailers are always followed by
None, readers's EOS. Users MUST read until the end of stream to ensure resource hygiene.The following example demonstrates one way of doing so: wiring in one extra read before returning from a read-loop:
def accumulate(r: Reader[Chunk]): Future[(Buf, Option[HeaderMap])] = { def loop(acc: Buf, trailers: Option[HeaderMap]): Future[(Buf, Option[HeaderMap])] = r.read().flatMap { case Some(chunk) => if (chunk.isLast && !chunk.trailers.isEmpty) loop(acc.concat(chunk.content), Some(chunk.trailers)) else loop(acc.concat(chunk.content), None) case None => Future.value(acc -> trailers) } loop(Buf.Empty, None) }
The HTTP dispatcher guarantees that
Chunk.Lastwill be issued in the inbound stream no matter if itstrailersorcontentpresent.Note: when consuming interleaved HTTP streams (i.e., via
Reader.flatMap) it's expected to observe multiple trailers before reaching the EOS. These inter-stream trailers space out individual HTTP streams from child readers. -
final
class
Cookie extends AnyRef
- Note
domainandpathmay be null.
-
class
CookieMap extends CookieMapVersionSpecific
Adapt cookies of a Message to a mutable Map where cookies are indexed by their name.
Adapt cookies of a Message to a mutable Map where cookies are indexed by their name. Requests use the Cookie header and Responses use the Set-Cookie header. If a cookie is added to the CookieMap, a header is automatically added to the Message. You can add the same cookie more than once. Use getAll to retrieve all of them, otherwise only the first one is returned. If a cookie is removed from the CookieMap, a header is automatically removed from the message
-
abstract
class
CookieMapVersionSpecific extends Map[String, Cookie] with MapLike[String, Cookie, CookieMap]
- Attributes
- protected
- final case class FileElement(name: String, content: Buf, contentType: Option[String] = None, filename: Option[String] = None, isText: Boolean = false) extends FormElement with Product with Serializable
- sealed abstract class FormElement extends AnyRef
-
abstract
class
HeaderMap extends HeaderMapVersionSpecific with Map[String, String]
Mutable message headers map.
-
abstract
class
HeaderMapVersionSpecific extends AnyRef
- Attributes
- protected
- final class InvalidUriException extends ChannelException with FailureFlags[InvalidUriException] with HasLogLevel
-
class
MapParamMap extends ParamMap
Map-backed ParamMap.
-
abstract
class
Message extends AnyRef
Rich Message
Rich Message
Base class for Request and Response. There are both input and output methods, though only one set of methods should be used.
-
final
class
Method extends AnyRef
Represents the HTTP method.
Represents the HTTP method.
The method is a case-sensitive string defined as part of the request line of the HTTP protocol.
- See also
https://tools.ietf.org/html/rfc7230#section-3.1.1
-
abstract
class
ParamMap extends ParamMapVersionSpecific
Request parameter map.
Request parameter map.
This is a persistent (immutable) multi-map.
Use
getAll()to get all values for a key. -
trait
ParamMapVersionSpecific extends Map[String, String] with MapLike[String, String, ParamMap]
- Attributes
- protected
- case class ProxyCredentials(username: String, password: String) extends Product with Serializable
-
abstract
class
Request extends Message
Rich HttpRequest.
Rich HttpRequest.
Use RequestProxy to create an even richer subclass.
-
class
RequestParamMap extends ParamMap
Http Request-backed ParamMap. This ParamMap contains both parameters provided as part of the request URI and parameters provided as part of the request body.
- Note
Request body parameters are considered if the following criteria are true:
- The request is not a TRACE request. 2. The request media type is 'application/x-www-form-urlencoded' 3. The content length is greater than 0.
-
abstract
class
RequestProxy extends Proxy
Proxy for Request.
Proxy for Request. This can be used to create a richer request class.
-
abstract
class
Response extends Message
Rich HttpResponse
-
abstract
class
ResponseProxy extends Proxy
Proxy for Response.
Proxy for Response. This can be used to create a richer response class.
- final case class SimpleElement(name: String, content: String) extends FormElement with Product with Serializable
-
case class
Status(code: Int) extends Product with Serializable
Represents an HTTP status code.
Represents an HTTP status code.
The set of commonly known HTTP status codes have an associated reason phrase (see
reasons). We don't provide a way to set the reason phrase because:- it simplifies construction (users only supply the code) - it avoids the need to validate user-defined reason phrases - it omits the possibility of statuses with duplicate reason phrases
The only downside is that we lose the ability to create custom statuses with "vanity" reason phrases, but this should be tolerable.
-
final
class
TooLongMessageException extends ChannelException with FailureFlags[TooLongMessageException]
The Message was too long to be handled correctly
-
final
class
Uri extends AnyRef
Represents an immutable URI.
-
final
case class
Version extends Product with Serializable
Represents the HTTP version.
Value Members
- object Chunk
- object Cookie
-
object
EmptyParamMap extends ParamMap
Empty ParamMap
- object Fields
- object HeaderMap
- object HttpTracing
- object MapParamMap
- object MediaType
- object Message
- object Method
- object ParamMap
- object ProxyCredentials extends Serializable
- object Request
- object Response
- object Status extends Serializable
- object TooLongMessageException extends Serializable
- object Uri
- object Version extends Serializable
- object serverErrorsAsFailures extends GlobalFlag[Boolean]