Me gustaría ver cuáles son los campos de publicación en la solicitud antes de enviarla. (Para fines de depuración).
La biblioteca PHP (clase) que estoy usando ya está hecha (no por mí), así que estoy tratando de entenderla.
Por lo que puedo decir, se usa curl_setopt()
para configurar diferentes opciones como encabezados y demás, y luego se usa curl_exec()
para enviar la solicitud.
¿Ideas sobre cómo ver qué campos de publicación se envían?
Respuestas:
Puedes habilitar la
CURLOPT_VERBOSE
opción:Cuando
CURLOPT_VERBOSE
se establece, la salida se escribe en STDERR o en el archivo especificado medianteCURLOPT_STDERR
. El resultado es muy informativo.También puede usar tcpdump o wireshark para ver el tráfico de la red.
fuente
CURLINFO_HEADER_OUT
aTRUE
. Por lo que puedo decir ...Puede habilitar la
CURLOPT_VERBOSE
opción y registrar esa información en un (temporal)CURLOPT_STDERR
:Luego puede leerlo después de que curl haya realizado la solicitud:
(Originalmente respondí similar pero más extendido en una pregunta relacionada).
Más información como métricas sobre la última solicitud está disponible a través de
curl_getinfo
. Esta información también puede ser útil para depurar solicitudes curl. Un ejemplo de uso, normalmente lo envolvería en una función:fuente
Aquí hay un código más simple para lo mismo:
donde $ fp es un identificador de archivo para generar errores. Por ejemplo:
(Lea en http://curl.haxx.se/mail/curlphp-2008-03/0064.html )
fuente
Aquí hay una forma aún más simple, escribiendo directamente en la salida de error php
fuente
Para obtener la información de una solicitud CURL, haga esto:
fuente
Salida de información de depuración a STDERR:
Salida de información de depuración al archivo:
Ver https://github.com/andriichuk/php-curl-cookbook#debug-request
fuente
Si solo desea una forma muy rápida de depurar el resultado:
fuente
Otra opción (cruda) es utilizar netcat para descargar la solicitud completa:
Y, por supuesto, enviándole la solicitud fallida:
En particular, eso siempre se bloqueará + fallará, ya que netcat nunca construirá una respuesta HTTP válida. Realmente es solo para inspeccionar lo que realmente se envió. La mejor opción, por supuesto, es utilizar un servicio de depuración de solicitudes http .
fuente