Signatur
Beschreibung
RequestParseBodyException ist eine Ausnahme, die geworfen wird, wenn PHP beim Parsen des HTTP-Request-Bodys auf einen Fehler stößt. Dies tritt typischerweise auf, wenn request_parse_body() aufgerufen wird und der übermittelte Body-Inhalt nicht korrekt verarbeitet werden kann – etwa wegen eines ungültigen Content-Type-Headers, eines fehlerhaften Multipart-Formats oder anderer Protokollverletzungen.
Die Klasse erweitert RuntimeException und kann daher mit einem standardmäßigen try/catch-Block abgefangen werden. Eine sorgfältige Fehlerbehandlung ist besonders in APIs und Webservices wichtig, um robuste und sichere Verarbeitungslogik für Eingabedaten sicherzustellen.
Seit PHP 8.4 ermöglicht request_parse_body() das manuelle Parsen des Request-Bodys (z. B. für PUT- oder PATCH-Anfragen), was vorher nicht nativ unterstützt wurde. RequestParseBodyException ist die zugehörige Fehlerklasse für diesen Anwendungsfall.
Beispiele
Request-Body parsen mit Fehlerbehandlung
<?php
// Für PUT- oder PATCH-Requests, bei denen $_POST nicht automatisch befüllt wird
try {
[$_POST, $_FILES] = request_parse_body();
echo "Body erfolgreich geparst.\n";
print_r($_POST);
} catch (\RequestParseBodyException $e) {
http_response_code(400);
echo "Fehler beim Parsen des Request-Bodys: " . $e->getMessage() . "\n";
}
Differenzierte Fehlerbehandlung in einer REST-API
<?php
function handlePutRequest(): void {
try {
[$_POST, $_FILES] = request_parse_body();
} catch (\RequestParseBodyException $e) {
header('Content-Type: application/json');
http_response_code(400);
echo json_encode([
'error' => 'invalid_request_body',
'message' => $e->getMessage(),
'code' => $e->getCode(),
]);
exit;
}
// Weiterverarbeitung der geparsten Daten
$name = htmlspecialchars($_POST['name'] ?? '');
echo "Empfangener Name: " . $name . "\n";
}
handlePutRequest();
// Wichtig · Fallstricke
Sicherheitshinweis: Nutzerinhalte aus $_POST und $_FILES, die durch request_parse_body() befüllt wurden, sollten stets validiert und sanitiert werden, bevor sie weiterverwendet werden. Eine RequestParseBodyException sollte niemals unbehandelt bleiben, da sie sonst zu einem unkontrollierten Programmabbruch führt.
Hinweis: Diese Ausnahme sowie request_parse_body() wurden in PHP 8.4 eingeführt. Bei älteren PHP-Versionen steht diese Funktionalität nicht zur Verfügung.
Der vollqualifizierte Klassenname lautet \RequestParseBodyException (im globalen Namespace).