Class: Net::HTTPRequest
| Relationships & Source Files | |
| Extension / Inclusion / Inheritance Descendants | |
|
Subclasses:
|
|
| Super Chains via Extension / Inclusion / Inheritance | |
|
Class Chain:
self,
HTTPGenericRequest
|
|
|
Instance Chain:
self,
HTTPGenericRequest,
HTTPHeader
|
|
| Inherits: |
Net::HTTPGenericRequest
|
| Defined in: | lib/net/http/request.rb |
Overview
This class is the base class for Net::HTTP request classes. The class should not be used directly; instead you should use its subclasses, listed below.
Creating a Request
An request object may be created with either a URI or a string hostname:
require 'net/http'
uri = URI('https://jsonplaceholder.typicode.com/')
req = Net::HTTP::Get.new(uri) # => #<Net::HTTP::Get GET>
req = Net::HTTP::Get.new(uri.hostname) # => #<Net::HTTP::Get GET>
And with any of the subclasses:
req = Net::HTTP::Head.new(uri) # => #<Net::HTTP::Head HEAD>
req = Net::HTTP::Post.new(uri) # => #<Net::HTTP::Post POST>
req = Net::HTTP::Put.new(uri) # => #<Net::HTTP::Put PUT>
# ...
The new instance is suitable for use as the argument to HTTP#request.
Request Headers
A new request object has these header fields by default:
req.to_hash
# =>
{"accept-encoding"=>["gzip;q=1.0,deflate;q=0.6,identity;q=0.3"],
"accept"=>["*/*"],
"user-agent"=>["Ruby"],
"host"=>["jsonplaceholder.typicode.com"]}
See:
You can add headers or override default headers:
# res = Net::HTTP::Get.new(uri, {'foo' => '0', 'bar' => '1'})
This class (and therefore its subclasses) also includes (indirectly) module HTTPHeader, which gives access to its methods for setting headers.
Request Subclasses
Subclasses for HTTP requests:
Subclasses for WebDAV requests:
Constant Summary
HTTPHeader - Included
Class Method Summary
-
.new(path, initheader = nil) ⇒ HTTPRequest
constructor
Creates an
HTTPrequest object forpath.
HTTPGenericRequest - Inherited
Instance Attribute Summary
HTTPGenericRequest - Inherited
| #body | Returns the string body for the request, or |
| #body= | Sets the body for the request: |
| #body_stream | Returns the body stream object for the request, or |
| #body_stream= | Sets the body stream for the request: |
| #decode_content | Returns |
| #method | Returns the string method name for the request: |
| #path | Returns the string path for the request: |
| #request_body_permitted? | Returns whether the request may have a body: |
| #response_body_permitted? | Returns whether the response may have a body: |
| #uri | Returns the URI object for the request, or |
| #body_exist? | |
HTTPHeader - Included
| #chunked? | Returns |
| #connection_close? | Returns whether the |
| #connection_keep_alive? | Returns whether the |
| #content_length | Returns the value of field |
| #content_length= | Sets the value of field |
Instance Method Summary
HTTPGenericRequest - Inherited
| #encode_multipart_form_data, #flush_buffer, | |
| #inspect | Returns a string representation of the request: |
| #pretty_print | Returns a string representation of the request with the details for pp: |
| #quote_string, #send_request_with_body, #send_request_with_body_data, #send_request_with_body_stream, | |
| #wait_for_continue | Waits up to the continue timeout for a response from the server provided we’re speaking |
| #write_header, | |
| #[]= | Don’t automatically decode response content-encoding if the user indicates they want to handle it. |
| #exec | write. |
| #set_body_internal | internal use only. |
| #update_uri | internal use only. |
HTTPHeader - Included
| #[] | Returns the string field value for the case-insensitive field |
| #[]= | Sets the value for the case-insensitive |
| #add_field | Adds value |
| #basic_auth | Sets header |
| #canonical_each | Alias for HTTPHeader#each_capitalized. |
| #content_range | Returns a Range object representing the value of field |
| #content_type | Returns the media type from the value of field |
| #content_type= | Alias for HTTPHeader#set_content_type. |
| #delete | Removes the header for the given case-insensitive |
| #each | Alias for HTTPHeader#each_header. |
| #each_capitalized | Like |
| #each_capitalized_name | Calls the block with each capitalized field name: |
| #each_header | Calls the block with each key/value pair: |
| #each_key | Alias for HTTPHeader#each_name. |
| #each_name | Calls the block with each field key: |
| #each_value | Calls the block with each string field value: |
| #fetch | With a block, returns the string value for |
| #form_data= | Alias for HTTPHeader#set_form_data. |
| #get_fields | Returns the array field value for the given |
| #key? | Returns |
| #main_type | Returns the leading (‘type’) part of the media type from the value of field |
| #proxy_basic_auth | Sets header |
| #range | Returns an array of Range objects that represent the value of field |
| #range= | Alias for HTTPHeader#set_range. |
| #range_length | Returns the integer representing length of the value of field |
| #set_content_type | Sets the value of field |
| #set_form | Stores form data to be used in a |
| #set_form_data | Sets the request body to a URL-encoded string derived from argument |
| #set_range | Sets the value for field |
| #sub_type | Returns the trailing (‘subtype’) part of the media type from the value of field |
| #to_hash | Returns a hash of the key/value pairs: |
| #type_params | Returns the trailing (‘parameters’) part of the value of field |
| #append_field_value, #basic_encode, #capitalize, #set_field, #initialize_http_header, | |
| #length | Alias for HTTPHeader#size. |
| #size | obsolete. |
Constructor Details
.new(path, initheader = nil) ⇒ HTTPRequest
# File 'lib/net/http/request.rb', line 82
def initialize(path, initheader = nil) super self.class::METHOD, self.class::REQUEST_HAS_BODY, self.class::RESPONSE_HAS_BODY, path, initheader end