class HTTP::Server::Response
Overview
The response to configure and write to in an HTTP::Server
handler.
The response #status_code
and #headers
must be configured before writing
the response body. Once response output is written, changing the status
and #headers
properties has no effect.
The HTTP::Server::Response
is a write-only IO
, so all IO
methods are available
in it.
A response can be upgraded with the #upgrade
method. Once invoked, headers
are written and the connection IO
(a socket) is yielded to the given block.
The block must invoke #close
afterwards, the server won't do it in this case.
This is useful to implement protocol upgrades, such as websockets.
Included Modules
Defined in:
http/server/response.crInstance Method Summary
-
#close
Closes this response, writing headers and body if not done yet.
-
#content_length=(content_length : Int)
Convenience method to set the
Content-Length
header. -
#content_type=(content_type : String)
Convenience method to set the
Content-Type
header. -
#cookies
Convenience method to set cookies, see
HTTP::Cookies
. -
#flush
Flushes the output.
-
#headers : HTTP::Headers
The response headers (
HTTP::Headers
). - #output : IO
- #output=(output : IO)
- #status_code : Int32
- #status_code=(status_code : Int32)
-
#upgrade(&block)
Upgrades this response, writing headers and yieling the connection
IO
(a socket) to the given block. -
#version : String
The version of the HTTP::Request that created this response.
-
#write(slice : Slice(UInt8))
See
IO#write(slice)
.
Instance methods inherited from module IO
<<(obj) : self
<<,
close
close,
closed?
closed?,
cooked(&block)
cooked,
cooked!
cooked!,
each_byteeach_byte(&block) each_byte, each_char(&block)
each_char each_char, each_line(*args)
each_line(*args, &block) each_line, encoding : String encoding, flush flush, gets(limit : Int) : String | Nil
gets(delimiter : Char, limit : Int) : String | Nil
gets(delimiter : Char) : String | Nil
gets : String | Nil
gets(delimiter : String) : String | Nil gets, gets_to_end : String gets_to_end, print(obj) : Nil
print(*objects : _) : Nil print, printf(format_string, *args) : Nil
printf(format_string, args : Array | Tuple) : Nil printf, puts : Nil
puts(*objects : _) : Nil
puts(string : String) : Nil
puts(obj) : Nil puts, raw(&block) raw, raw! raw!, read(slice : Slice(UInt8)) read, read_byte : UInt8 | Nil read_byte, read_bytes(type, format : IO::ByteFormat = IO::ByteFormat::SystemEndian) read_bytes, read_char : Char | Nil read_char, read_fully(slice : Slice(UInt8)) read_fully, read_line(*args) : String | Nil read_line, read_nonblock(size) read_nonblock, read_utf8(slice : Slice(UInt8)) read_utf8, read_utf8_byte read_utf8_byte, rewind rewind, set_encoding(encoding : String, invalid : Symbol | Nil = nil) set_encoding, skip(bytes_count : Int) : Nil skip, tty? : Bool tty?, write(slice : Slice(UInt8)) : Nil write, write_byte(byte : UInt8) write_byte, write_bytes(object, format : IO::ByteFormat = IO::ByteFormat::SystemEndian) write_bytes, write_utf8(slice : Slice(UInt8)) write_utf8
Class methods inherited from module IO
copy(src, dst)
copy,
pipe(read_blocking = false, write_blocking = false, &block)pipe(read_blocking = false, write_blocking = false) pipe, select(read_ios, write_ios, error_ios, timeout_sec : LibC::TimeT | Int | Float | Nil)
select(read_ios, write_ios = nil, error_ios = nil) select
Instance methods inherited from module JSON::Builder
json_array(&block)
json_array,
json_object(&block)
json_object
Instance methods inherited from class Reference
==(other)==(other : self) ==, hash hash, inspect(io : IO) : Nil inspect, object_id : UInt64 object_id, same?(other : Reference)
same?(other : Nil) same?, to_s(io : IO) : Nil to_s
Instance methods inherited from class Object
!=(other)
!=,
!~(other)
!~,
==(other)
==,
===(other)===(other : YAML::Any)
===(other : JSON::Any) ===, =~(other) =~, class class, clone clone, crystal_type_id crystal_type_id, dup dup, hash hash, inspect
inspect(io : IO) inspect, itself itself, not_nil! not_nil!, tap(&block) tap, to_json to_json, to_pretty_json(io : IO)
to_pretty_json to_pretty_json, to_s
to_s(io : IO) to_s, to_yaml(io : IO)
to_yaml to_yaml, try(&block) try
Class methods inherited from class Object
==(other : Class)
==,
===(other)
===,
cast(other) : self
cast,
from_json(string_or_io) : self
from_json,
from_yaml(string : String) : self
from_yaml,
hash
hash,
inspect(io)
inspect,
name : String
name,
to_s(io)
to_s,
|(other : U.class)
|
Instance Method Detail
Closes this response, writing headers and body if not done yet. This method must be implemented if wrapping the response output.
Convenience method to set the Content-Length
header.
Convenience method to set the Content-Type
header.
The response headers (HTTP::Headers
). These must be set before writing to the response.