2009-12-01 23 views

Respuesta

39

Puede utilizar curl_getinfo:

Antes de la llamada

curl_setopt($ch, CURLINFO_HEADER_OUT, true); 

Después

$headers = curl_getinfo($ch, CURLINFO_HEADER_OUT); 
+1

Desafortunadamente, esto no muestra el cuerpo de la solicitud cURL. ¿Alguien sabe cómo mostrar eso? Obviamente pasamos el cuerpo a cURL, pero para la depuración me gustaría ver EXACTAMENTE lo que está enviando cURL. –

+0

@ChadwickMeyer Estoy buscando lo mismo: cómo mostrar los encabezados y el cuerpo de la solicitud. No parece ser posible . :-( –

2

asegúrese de ajustar la opción CURLINFO_HEADER_OUT antes de hacer la curl_getinfo llamar

curl_setopt ($ c, CURLINFO_HEADER_OUT, verdadero);

+0

que no funciona código –

+2

favor señalar lo que está mal con él – jlb

+0

@Janek Debe leerse como sigue: curl_setopt ($ c, CURLOPT_HEADER, true); – pcdinh

4

AFAIK, la encuadernación PHP/CURL aún carece de soporte adecuado para CURLOPT_DEBUGFUNCTION que es una devolución de llamada de libcurl que puede proporcionar todos esos detalles.

Esa es la razón principal por la que recomiendo a las personas que resuelvan las secuencias de comandos HTTP con la herramienta de línea de comandos curl y su opción --trace-ascii FIRST, luego traduzcan eso en una función de PHP.

+0

Parece que tiene razón, busqué el último PHP estable fuente un poco, y parece que ** utilizan ** CURLOPT_DEBUGFUNCTION para implementar sus opciones CURLINFO_HEADER_OUT, pero no exponen un CURLOPT_DEBUGFUNCTION completo. Nota al margen: Recuerdo sus correos electrónicos de la lista de correo de php curl. Me sorprende que aún tengas la paciencia para hacer cualquier tipo de soporte de libcurl relacionado con PHP :) –

8
<?php 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLINFO_HEADER_OUT, true); 
curl_exec($ch); 
var_dump(curl_getinfo($ch,CURLINFO_HEADER_OUT)); 
?> 

Sólo disponible en PHP 5.1.3 http://php.net/manual/en/function.curl-getinfo.php


Puede comprobar que son los mismos mediante el uso de la consola y golpear

rizo http://example.com/ -I

o

cu rl --trace-ascii /file.txt http://example.com/

Cuestiones relacionadas