enum HTTP::Status
Overview
An enum that provides additional support around HTTP status codes.
Based on Hypertext Transfer Protocol (HTTP) Status Code Registry
It provides constants for the defined HTTP status codes as well as helper methods to easily identify the type of response.
NOTE To use Status
, you must explicitly import it with require "http/status"
Defined in:
http/status.crEnum Members
-
CONTINUE =
100
-
SWITCHING_PROTOCOLS =
101
-
PROCESSING =
102
-
EARLY_HINTS =
103
-
OK =
200
-
CREATED =
201
-
ACCEPTED =
202
-
NON_AUTHORITATIVE_INFORMATION =
203
-
NO_CONTENT =
204
-
RESET_CONTENT =
205
-
PARTIAL_CONTENT =
206
-
MULTI_STATUS =
207
-
ALREADY_REPORTED =
208
-
IM_USED =
226
-
MULTIPLE_CHOICES =
300
-
MOVED_PERMANENTLY =
301
-
FOUND =
302
-
SEE_OTHER =
303
-
NOT_MODIFIED =
304
-
USE_PROXY =
305
-
SWITCH_PROXY =
306
-
TEMPORARY_REDIRECT =
307
-
PERMANENT_REDIRECT =
308
-
BAD_REQUEST =
400
-
UNAUTHORIZED =
401
-
PAYMENT_REQUIRED =
402
-
FORBIDDEN =
403
-
NOT_FOUND =
404
-
METHOD_NOT_ALLOWED =
405
-
NOT_ACCEPTABLE =
406
-
PROXY_AUTHENTICATION_REQUIRED =
407
-
REQUEST_TIMEOUT =
408
-
CONFLICT =
409
-
GONE =
410
-
LENGTH_REQUIRED =
411
-
PRECONDITION_FAILED =
412
-
PAYLOAD_TOO_LARGE =
413
-
URI_TOO_LONG =
414
-
UNSUPPORTED_MEDIA_TYPE =
415
-
RANGE_NOT_SATISFIABLE =
416
-
EXPECTATION_FAILED =
417
-
IM_A_TEAPOT =
418
-
MISDIRECTED_REQUEST =
421
-
UNPROCESSABLE_ENTITY =
422
-
LOCKED =
423
-
FAILED_DEPENDENCY =
424
-
UPGRADE_REQUIRED =
426
-
PRECONDITION_REQUIRED =
428
-
TOO_MANY_REQUESTS =
429
-
REQUEST_HEADER_FIELDS_TOO_LARGE =
431
-
UNAVAILABLE_FOR_LEGAL_REASONS =
451
-
INTERNAL_SERVER_ERROR =
500
-
NOT_IMPLEMENTED =
501
-
BAD_GATEWAY =
502
-
SERVICE_UNAVAILABLE =
503
-
GATEWAY_TIMEOUT =
504
-
HTTP_VERSION_NOT_SUPPORTED =
505
-
VARIANT_ALSO_NEGOTIATES =
506
-
INSUFFICIENT_STORAGE =
507
-
LOOP_DETECTED =
508
-
NOT_EXTENDED =
510
-
NETWORK_AUTHENTICATION_REQUIRED =
511
Constructors
-
.new(status_code : Int32)
Create a new status instance with the given status code, or raise an error if the status code given is not inside 100..999.
Instance Method Summary
- #accepted?
- #already_reported?
- #bad_gateway?
- #bad_request?
-
#client_error? : Bool
Returns
true
if the response status code is between 400 and 499. -
#code : Int32
Returns the number that represents the HTTP status code.
- #conflict?
- #continue?
- #created?
-
#description : String | Nil
Returns the default status description of the given HTTP status code.
- #early_hints?
- #expectation_failed?
- #failed_dependency?
- #forbidden?
- #found?
- #gateway_timeout?
- #gone?
- #http_version_not_supported?
- #im_a_teapot?
- #im_used?
-
#informational? : Bool
Returns
true
if the response status code is between 100 and 199. - #insufficient_storage?
- #internal_server_error?
- #length_required?
- #locked?
- #loop_detected?
- #method_not_allowed?
- #misdirected_request?
- #moved_permanently?
- #multi_status?
- #multiple_choices?
- #network_authentication_required?
- #no_content?
- #non_authoritative_information?
- #not_acceptable?
- #not_extended?
- #not_found?
- #not_implemented?
- #not_modified?
- #ok?
- #partial_content?
- #payload_too_large?
- #payment_required?
- #permanent_redirect?
- #precondition_failed?
- #precondition_required?
- #processing?
- #proxy_authentication_required?
- #range_not_satisfiable?
-
#redirection? : Bool
Returns
true
if the response status code is between 300 and 399. - #request_header_fields_too_large?
- #request_timeout?
- #reset_content?
- #see_other?
-
#server_error? : Bool
Returns
true
if the response status code is between 500 and 599. - #service_unavailable?
-
#success? : Bool
Returns
true
if the response status code is between 200 and 299. - #switch_proxy?
- #switching_protocols?
- #temporary_redirect?
- #too_many_requests?
- #unauthorized?
- #unavailable_for_legal_reasons?
- #unprocessable_entity?
- #unsupported_media_type?
- #upgrade_required?
- #uri_too_long?
- #use_proxy?
- #variant_also_negotiates?
Instance methods inherited from struct Enum
&(other : self) : self
&,
+(other : Int) : self
+,
-(other : Int) : self
-,
<=>(other : self)
<=>,
==(other : self)==(other) ==, ^(other : self) : self ^, |(other : self) : self |, ~ : self ~, clone clone, each(& : self -> ) each, hash(hasher) hash, includes?(other : self) : Bool includes?, inspect(io : IO) : Nil inspect, to_f32 : Float32 to_f32, to_f32! : Float32 to_f32!, to_f64 : Float64 to_f64, to_f64! : Float64 to_f64!, to_i : Int32 to_i, to_i128 : Int128 to_i128, to_i128! : Int128 to_i128!, to_i16 : Int16 to_i16, to_i16! : Int16 to_i16!, to_i32 : Int32 to_i32, to_i32! : Int32 to_i32!, to_i64 : Int64 to_i64, to_i64! : Int64 to_i64!, to_i8 : Int8 to_i8, to_i8! : Int8 to_i8!, to_json(json : JSON::Builder) to_json, to_s(io : IO) : Nil
to_s : String to_s, to_u128 : UInt128 to_u128, to_u128! : UInt128 to_u128!, to_u16 : UInt16 to_u16, to_u16! : UInt16 to_u16!, to_u32 : UInt32 to_u32, to_u32! : UInt32 to_u32!, to_u64 : UInt64 to_u64, to_u64! : UInt64 to_u64!, to_u8 : UInt8 to_u8, to_u8! : UInt8 to_u8!, to_yaml(yaml : YAML::Nodes::Builder) to_yaml, value : Int value
Constructor methods inherited from struct Enum
from_value(value : Int) : self
from_value,
new(ctx : YAML::ParseContext, node : YAML::Nodes::Node)new(value : self)
new(pull : JSON::PullParser) new, parse(string : String) : self parse
Class methods inherited from struct Enum
each(& : self -> )
each,
from_value?(value : Int) : self | Nil
from_value?,
names : Array(String)
names,
parse?(string : String) : self | Nil
parse?,
valid?(value : self) : Bool
valid?,
values : Array(self)
values
Instance methods inherited from module Comparable(Enum)
<(other : T) : Bool
<,
<=(other : T)
<=,
<=>(other : T)
<=>,
==(other : T)
==,
>(other : T) : Bool
>,
>=(other : T)
>=,
clamp(min, max)clamp(range : Range) clamp
Instance methods inherited from struct Value
==(other : JSON::Any)==(other : YAML::Any)
==(other) ==, dup dup
Instance methods inherited from class Object
! : Bool
!,
!=(other)
!=,
!~(other)
!~,
==(other)
==,
===(other : JSON::Any)===(other : YAML::Any)
===(other) ===, =~(other) =~, as(type : Class) as, as?(type : Class) as?, class class, dup dup, hash(hasher)
hash hash, in?(collection : Object) : Bool
in?(*values : Object) : Bool in?, inspect(io : IO) : Nil
inspect : String inspect, is_a?(type : Class) : Bool is_a?, itself itself, nil? : Bool nil?, not_nil!(message)
not_nil! not_nil!, pretty_inspect(width = 79, newline = "\n", indent = 0) : String pretty_inspect, pretty_print(pp : PrettyPrint) : Nil pretty_print, responds_to?(name : Symbol) : Bool responds_to?, tap(&) tap, to_json(io : IO) : Nil
to_json : String to_json, to_pretty_json(indent : String = " ") : String
to_pretty_json(io : IO, indent : String = " ") : Nil to_pretty_json, to_s(io : IO) : Nil
to_s : String to_s, to_yaml(io : IO) : Nil
to_yaml : String to_yaml, try(&) try, unsafe_as(type : T.class) forall T unsafe_as
Class methods inherited from class Object
from_json(string_or_io, root : String)from_json(string_or_io) from_json, from_yaml(string_or_io : String | IO) from_yaml
Constructor Detail
Create a new status instance with the given status code, or raise an error if the status code given is not inside 100..999.
require "http/status"
HTTP::Status.new(100) # => HTTP::Status::CONTINUE
HTTP::Status.new(202) # => HTTP::Status::ACCEPTED
HTTP::Status.new(123) # => 123
HTTP::Status.new(1000) # raises ArgumentError
Instance Method Detail
Returns true
if the response status code is between 400 and 499.
require "http/status"
HTTP::Status::METHOD_NOT_ALLOWED.client_error? # => true
HTTP::Status::INTERNAL_SERVER_ERROR.client_error? # => false
Returns the number that represents the HTTP status code.
require "http/status"
status = HTTP::Status::NO_CONTENT
status.code # => 204
Returns the default status description of the given HTTP status code.
require "http/status"
HTTP::Status.new(123).description # => nil
HTTP::Status::NO_CONTENT.description # => "No Content"
HTTP::Status::METHOD_NOT_ALLOWED.description # => "Method Not Allowed"
HTTP::Status::INTERNAL_SERVER_ERROR.description # => "Internal Server Error"
Returns true
if the response status code is between 100 and 199.
require "http/status"
HTTP::Status::SWITCHING_PROTOCOLS.informational? # => true
HTTP::Status::INTERNAL_SERVER_ERROR.informational? # => false
Returns true
if the response status code is between 300 and 399.
require "http/status"
HTTP::Status::SWITCH_PROXY.redirection? # => true
HTTP::Status::INTERNAL_SERVER_ERROR.redirection? # => false
Returns true
if the response status code is between 500 and 599.
require "http/status"
HTTP::Status::INTERNAL_SERVER_ERROR.server_error? # => true
HTTP::Status::METHOD_NOT_ALLOWED.server_error? # => false
Returns true
if the response status code is between 200 and 299.
require "http/status"
HTTP::Status::NO_CONTENT.success? # => true
HTTP::Status::INTERNAL_SERVER_ERROR.success? # => false