Estou construindo um aplicativo de automação da web Curl e estou tendo alguns problemas em não obter o resultado desejado da minha ação POST, estou tendo alguns problemas para descobrir como posso mostrar a solicitação POST completa que estou enviando (com cabeçalhos), tenho pesquisado sobre isso, mas tudo o que surge são os cabeçalhos de resposta, na verdade eu também quero esses, mas também a solicitação, que nenhuma das postagens que encontro no google parecem mencionar ..
Eu sei que posso exibir o resultado de uma solicitação curl usando algo assim (perdoe-me se minha sintaxe estiver errada, já desliguei minha máquina virtual com meu ide e código para me referir a
$result = curl($curl_exect) ;
De qualquer forma, eu apreciaria muito qualquer conselho sobre como visualizar os cabeçalhos completos, obrigado
Respostas:
Você pode ver as informações sobre a transferência fazendo:
curl_setopt($curl_exect, CURLINFO_HEADER_OUT, true);
antes do pedido, e
depois do pedido
Você também pode usar o
CURLOPT_HEADER
em seucurl_setopt
curl_setopt($curl_exect, CURLOPT_HEADER, true); $httpcode = curl_getinfo($c, CURLINFO_HTTP_CODE); return $httpcode == 200;
Esses são apenas alguns métodos de uso dos cabeçalhos.
fonte
curl_setopt($curl_exect, CURLINFO_HEADER_OUT, true);
Aqui está tudo que você precisa:
curl_setopt($curlHandle, CURLINFO_HEADER_OUT, true); // enable tracking ... // do curl request $headerSent = curl_getinfo($curlHandle, CURLINFO_HEADER_OUT ); // request headers
fonte
Você pode salvar todos os cabeçalhos enviados por curl para um arquivo usando:
$f = fopen('request.txt', 'w'); curl_setopt($ch,CURLOPT_VERBOSE,true); curl_setopt($ch,CURLOPT_STDERR ,$f);
fonte
Você pode fazer você mesmo solicitar cabeçalhos 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 como fazer o pedido
fonte
Tive exatamente o mesmo problema recentemente e instalei o Wireshark (é uma ferramenta de monitoramento de rede). Você pode ver tudo com isso, exceto o tráfego criptografado (HTTPS).
fonte
Ctrl+Shift+J
então clica noXHR
botão e no nome do arquivo e então vê cabeçalhos e dados.