Estoy creando una aplicación de automatización web Curl y tengo algún problema al no obtener el resultado deseado de mi acción POST, tengo problemas para averiguar cómo puedo mostrar la solicitud POST completa que estoy enviando (con encabezados), He estado buscando en esto, pero todo lo que aparece son los encabezados de respuesta, en realidad también quiero estos, pero también la solicitud, que ninguna de las publicaciones que encuentro en Google parece mencionar.
Sé que puedo mostrar el resultado de una solicitud curl usando algo como esto (perdóneme si mi sintaxis está apagada, ya apagué mi máquina virtual con mi ide y código para referirme
$result = curl($curl_exect) ;
De todos modos, agradecería mucho cualquier consejo sobre cómo ver los encabezados completos, gracias
Respuestas:
Puede ver la información relativa a la transferencia haciendo:
curl_setopt($curl_exect, CURLINFO_HEADER_OUT, true);
antes de la solicitud, y
después de la solicitud
También puede utilizar el
CURLOPT_HEADER
en sucurl_setopt
curl_setopt($curl_exect, CURLOPT_HEADER, true); $httpcode = curl_getinfo($c, CURLINFO_HTTP_CODE); return $httpcode == 200;
Estos son solo algunos métodos para usar los encabezados.
fuente
curl_setopt($curl_exect, CURLINFO_HEADER_OUT, true);
Aquí tienes todo lo que necesitas:
curl_setopt($curlHandle, CURLINFO_HEADER_OUT, true); // enable tracking ... // do curl request $headerSent = curl_getinfo($curlHandle, CURLINFO_HEADER_OUT ); // request headers
fuente
Puede guardar todos los encabezados enviados por curl en un archivo usando:
$f = fopen('request.txt', 'w'); curl_setopt($ch,CURLOPT_VERBOSE,true); curl_setopt($ch,CURLOPT_STDERR ,$f);
fuente
Puede hacer que solicite encabezados usted mismo usando:
// open a socket connection on port 80 $fp = fsockopen($host, 80); // send the request headers: fputs($fp, "POST $path HTTP/1.1\r\n"); fputs($fp, "Host: $host\r\n"); fputs($fp, "Referer: $referer\r\n"); fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n"); fputs($fp, "Content-length: ". strlen($data) ."\r\n"); fputs($fp, "Connection: close\r\n\r\n"); fputs($fp, $data); $result = ''; while(!feof($fp)) { // receive the results of the request $result .= fgets($fp, 128); } // close the socket connection: fclose($fp);
Como escrito sobre cómo hacer una solicitud
fuente
Últimamente tuve exactamente el mismo problema e instalé Wireshark (es una herramienta de monitoreo de red). Puede ver todo con esto, excepto el tráfico cifrado (HTTPS).
fuente
Ctrl+Shift+J
luego haces clic en elXHR
botón y el nombre del archivo y luego ves los encabezados y los datos?