Maison >développement back-end >tutoriel php >Personnaliser la troncature des exceptions de demande du client HTTP

Personnaliser la troncature des exceptions de demande du client HTTP

Robert Michael Kim
Robert Michael Kimoriginal
2025-03-06 02:39:09238parcourir

Customize the Truncation of HTTP Client Request Exceptions

frustré par les exceptions du client HTTP tronquées obscurcissant les informations de débogage cruciales dans les rapports de bogues ou la sentinelle? La troncature par défaut de Laravel des réponses HTTP peut masquer des indices vitaux sur les défaillances de la demande.

Ce problème est résolu dans Laravel 11.35! Deux nouvelles méthodes offrent un contrôle précis sur la troncature des exceptions. Ajoutez-les simplement à votre bootstrap/app.php:

// bootstrap/app.php

use Illuminate\Http\Client\RequestException;

return Application::configure(basePath: dirname(__DIR__))
    // ...
    ->withExceptions(function (Exceptions $exceptions) {
        $exceptions->dontTruncateRequestExceptions(); // Completely disable truncation

        // Or...

        $exceptions->truncateRequestExceptionsAt(260); // Set a custom truncation length
    })->create();

Maintenant, les exceptions du client HTTP resteront entièrement intactes ou seront tronquées à votre longueur spécifiée (plus longue que la valeur par défaut). Vous conservez le contrôle total sur la gestion et la journalisation des exceptions:

try {
    $response = Http::throws()->get('https://api.example.com/some-error');

    // ...
} catch (\Illuminate\Http\Client\RequestException $e) {
    Log::error('HTTP Error', [
        'message' => $e->getMessage(), // Truncated or not, depending on your setting
        'response' => $e->response->json(),
        'status' => $e->response->status(),
        // ...
    ]);
}

Pour des informations détaillées sur la gestion des exceptions et la troncature au sein du client HTTP de Laravel, consultez la documentation officielle de Laravel.

Merci spécial à Steve Bauman (demande de traction # 53734) pour cette précieuse amélioration de Laravel 11.35.0!

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn