Zum Hauptinhalt springen

Response

Das Response-Objekt enthält das Ergebnis einer HTTP-Anfrage, die mit dem Request-Modul ausgeführt wurde. Es bietet Zugriff auf die Antwortdaten, den Statuscode und weitere Metadaten, die vom Server zurückgegeben werden.

Übersicht

Response-Objekte werden von HTTP-Anfragemethoden wie get(), post(), put(), patch() und delete() zurückgegeben. Sie kapseln die Antwort des Servers und stellen Methoden bereit, um auf den Antwortinhalt und die Metadaten zuzugreifen.

Methoden

getData(): string

Ruft den Inhalt des Antwortkörpers als Zeichenkette ab.

Rückgabe

string - Der Inhalt des Antwortkörpers

getResponseCode(): number

Ruft den HTTP-Statuscode aus der Antwort ab.

Rückgabe

number - Der HTTP-Statuscode (z. B. 200, 404, 500)

Typisches Verwendungsmuster

-- Make a request and handle the response
local response = Request("https://api.example.com/data"):get()

-- Get the status code to check if the request was successful
local statusCode = response:getResponseCode()

if statusCode == 200 then
-- Request was successful, get the data
local data = response:getData()
print("Response data: " .. data)
else
-- Request failed, handle the error
print("Request failed with status: " .. statusCode)
local errorData = response:getData()
if errorData and errorData ~= "" then
print("Error details: " .. errorData)
end
end

HTTP-Statuscode-Kategorien

Status RangeMeaningTypical Response
200-299ErfolgEnthält angeforderte Daten oder Bestätigung
300-399UmleitungMeist leer oder enthält Umleitungsinformationen
400-499Client-FehlerEnthält Fehlerbeschreibung
500-599Server-FehlerEnthält Fehlerbeschreibung

Antwortdatenformate

Antwortdaten werden immer als Zeichenkette zurückgegeben, unabhängig vom ursprünglichen Format:

  • JSON: "{\"key\":\"value\"}" - Muss möglicherweise geparst werden, wenn Sie über einen JSON-Parser verfügen
  • XML: "<?xml version=\"1.0\"?><root>...</root>" - XML-Inhalt als Zeichenkette
  • Plain Text: "Simple text response" - Direkter Textinhalt
  • HTML: "<html><body>...</body></html>" - HTML-Inhalt als Zeichenkette
  • Leer: "" - Kein Inhalt (häufig bei 204-Antworten)

Empfohlene Vorgehensweisen

  1. Statuscode immer zuerst prüfen, bevor Sie die Antwortdaten verarbeiten
  2. Leere Antworten korrekt behandeln, insbesondere bei 204-Statuscodes
  3. Antwortinhalt auch bei Fehlerantworten prüfen, da diese nützliche Informationen enthalten können
  4. Auf Netzwerkfehler vorbereitet sein, die die Erstellung eines Response-Objekts verhindern können

Beispiele

Grundlegende Antwortbehandlung

local response = Request("https://api.example.com/users/123"):get()
local status = response:getResponseCode()

if status == 200 then
local userData = response:getData()
print("User data: " .. userData)
else
print("Failed to get user data. Status: " .. status)
end

Fehlerbehandlung

local response = Request("https://api.example.com/invalid"):get()
local status = response:getResponseCode()

if status == 404 then
print("Resource not found")
elseif status == 401 then
print("Authentication required")
elseif status >= 500 then
print("Server error: " .. status)
local errorDetails = response:getData()
print("Error details: " .. errorDetails)
else
print("Unexpected status code: " .. status)
end

Arbeiten mit verschiedenen HTTP-Methoden

-- GET request
local getResponse = Request("https://api.example.com/data"):get()
print("GET status: " .. getResponse:getResponseCode())

-- POST request
local postResponse = Request("https://api.example.com/data")
:setParameter("key", "value")
:post()
print("POST status: " .. postResponse:getResponseCode())

-- DELETE request
local deleteResponse = Request("https://api.example.com/data/123"):delete()
print("DELETE status: " .. deleteResponse:getResponseCode())