Gostaria de ver quais são os campos de postagem na solicitação antes de enviá-la. (Para fins de depuração).
A biblioteca PHP (classe) que estou usando já foi criada (não por mim), por isso estou tentando entender.
Tanto quanto eu posso dizer, ele usa curl_setopt()
para definir opções diferentes, como cabeçalhos e outros, e depois usa curl_exec()
para enviar a solicitação.
Idéias sobre como ver quais campos de postagem estão sendo enviados?
Respostas:
Você pode ativar a
CURLOPT_VERBOSE
opção:Quando
CURLOPT_VERBOSE
definido, a saída é gravada em STDERR ou no arquivo especificado usandoCURLOPT_STDERR
. A saída é muito informativa.Você também pode usar tcpdump ou wireshark para assistir ao tráfego da rede.
fonte
CURLINFO_HEADER_OUT
aTRUE
. Até onde eu sei ...Você pode ativar a
CURLOPT_VERBOSE
opção e registrar essas informações em um (temporário)CURLOPT_STDERR
:Você pode lê-lo depois que o curl tiver feito a solicitação:
(Eu originalmente respondi de maneira semelhante, mas mais estendida em uma pergunta relacionada.)
Mais informações, como métricas sobre a última solicitação, estão disponíveis em
curl_getinfo
. Essas informações também podem ser úteis para depurar solicitações de curl. Um exemplo de uso, eu normalmente agruparia isso em uma função:fonte
Aqui está um código mais simples para o mesmo:
onde $ fp é um identificador de arquivo para gerar erros. Por exemplo:
(Leia em http://curl.haxx.se/mail/curlphp-2008-03/0064.html )
fonte
Aqui está uma maneira ainda mais simples, escrevendo diretamente na saída de erro do php
fonte
Para obter apenas as informações de uma solicitação CURL, faça o seguinte:
fonte
Se você quer apenas uma maneira muito rápida de depurar o resultado:
fonte
Outra opção (bruta) é utilizar o netcat para descarregar a solicitação completa:
E, é claro, enviando a solicitação com falha:
Notavelmente, isso sempre travará + falhará, pois o netcat nunca construirá uma resposta HTTP válida. É realmente apenas para inspecionar o que realmente foi enviado. A melhor opção, é claro, é usar um serviço de depuração de solicitação http .
fonte
Informações de depuração de saída para STDERR:
Informações de depuração de saída para o arquivo:
Consulte https://github.com/andriichuk/php-curl-cookbook#debug-request
fonte