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 Range | Meaning | Typical Response |
|---|---|---|
| 200-299 | Erfolg | Enthält angeforderte Daten oder Bestätigung |
| 300-399 | Umleitung | Meist leer oder enthält Umleitungsinformationen |
| 400-499 | Client-Fehler | Enthält Fehlerbeschreibung |
| 500-599 | Server-Fehler | Enthä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
- Statuscode immer zuerst prüfen, bevor Sie die Antwortdaten verarbeiten
- Leere Antworten korrekt behandeln, insbesondere bei 204-Statuscodes
- Antwortinhalt auch bei Fehlerantworten prüfen, da diese nützliche Informationen enthalten können
- 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())