class Net::HTTPResponse

Diese Klasse ist die Basisklasse für die Antwortklassen von Net::HTTP.

Über die Beispiele

Die hier angenommenen Codebeispiele erfordern, dass net/http geladen wurde (was auch uri lädt)

require 'net/http'

Viele Codebeispiele hier verwenden diese Beispiel-Websites

Einige Beispiele gehen auch von diesen Variablen aus

uri = URI('https://jsonplaceholder.typicode.com/')
uri.freeze # Examples may not modify.
hostname = uri.hostname # => "jsonplaceholder.typicode.com"
path = uri.path         # => "/"
port = uri.port         # => 443

So dass Beispielanfragen geschrieben werden können als

Net::HTTP.get(uri)
Net::HTTP.get(hostname, '/index.html')
Net::HTTP.start(hostname) do |http|
  http.get('/todos/1')
  http.get('/todos/2')
end

Ein Beispiel, das eine modifizierte URI benötigt, dupliziert zuerst uri und modifiziert dann die Kopie

_uri = uri.dup
_uri.path = '/todos/1'

Zurückgegebene Antworten

Die Methode Net::HTTP.get_response gibt eine Instanz einer der Unterklassen von Net::HTTPResponse zurück.

Net::HTTP.get_response(uri)
# => #<Net::HTTPOK 200 OK readbody=true>
Net::HTTP.get_response(hostname, '/nosuch')
# => #<Net::HTTPNotFound 404 Not Found readbody=true>

Ebenso wie die Methode Net::HTTP#request.

req = Net::HTTP::Get.new(uri)
Net::HTTP.start(hostname) do |http|
  http.request(req)
end # => #<Net::HTTPOK 200 OK readbody=true>

Die Klasse Net::HTTPResponse enthält das Modul Net::HTTPHeader, welches den Zugriff auf Antwort-Header-Werte ermöglicht, unter anderem über

Beispiele

res = Net::HTTP.get_response(uri) # => #<Net::HTTPOK 200 OK readbody=true>
res['Content-Type']               # => "text/html; charset=UTF-8"
res.content_type                  # => "text/html"

Antwort-Unterklassen

Die Klasse Net::HTTPResponse hat eine Unterklasse für jeden HTTP-Statuscode. Sie können die Antwortklasse für einen gegebenen Code nachschlagen.

Net::HTTPResponse::CODE_TO_OBJ['200'] # => Net::HTTPOK
Net::HTTPResponse::CODE_TO_OBJ['400'] # => Net::HTTPBadRequest
Net::HTTPResponse::CODE_TO_OBJ['404'] # => Net::HTTPNotFound

Und Sie können den Statuscode für ein Antwortobjekt abrufen.

Net::HTTP.get_response(uri).code                 # => "200"
Net::HTTP.get_response(hostname, '/nosuch').code # => "404"

Die Antwort-Unterklassen (Einrückung zeigt die Klassenhierarchie an)

Es gibt auch die Ausnahme Net::HTTPBadResponse, die ausgelöst wird, wenn ein Protokollfehler vorliegt.