2015-09-13 16 views
9

Esiste un modo per stampare la richiesta completa come stringa prima o dopo l'invio?Guzzle 6, ottieni la stringa di richiesta

$res = (new GuzzleHttp\Client())->request('POST', 'https://endpoint.nz/test', [ 'form_params' => [ 'param1'=>1,'param2'=>2,'param3'=3 ] ]); 

come è possibile visualizzare tale richiesta come stringa? (non la risposta)

Il motivo è che la mia richiesta non riesce e restituire un 403 e voglio sapere che cosa viene inviato esattamente; come la stessa richiesta funziona quando si utilizza PostMan.

+0

https://github.com/guzzle/guzzle/blob/master/src%2FMessageFormatter.php – zerkms

risposta

12

Come da documentazione Guzzle c'è opzione di debug, ecco il link da documentazione guzzle http://guzzle.readthedocs.org/en/latest/request-options.html#debug

$client->request('GET', '/get', ['debug' => true]); 
+0

Il problema con questo è che sei bloccato se l'applicazione fa qualcosa per il rendering di output, in quanto non vedrai nulla. E non puoi catturarlo senza qualche deviazione inutilmente complicata dello stdout. Oh e fornendo un phpstream ad un file di log dà un errore di richiesta di arricciatura. Guzzle è progettato per essere il più opaco possibile? –

+0

Mettere [ob_start] (http://php.net/manual/en/function.ob-start.php) e [ob_get_clean] (http://php.net/manual/en/function.ob-start.php) attorno alla 'richiesta' puoi ottenere i risultati del debug in una variabile invece di standard out. –

+0

Anche in questo caso, inutilmente complicato e difficile da usare senza passare qualche altra ora alla ricerca di una risposta. Non dovrebbe essere così difficile eseguire il debug di qualcosa. Avrei pensato che avresti potuto ottenere queste informazioni usando xdebug ma sembra impossibile. –

Problemi correlati