Я хотел бы посмотреть, какие поля находятся в запросе, прежде чем отправить его. (Для целей отладки).
Библиотека PHP (класс), которую я использую, уже создана (не мной), поэтому я пытаюсь понять это.
Насколько я могу судить, он использует curl_setopt()
для установки различных параметров, таких как заголовки и т. Д., А затем он использует curl_exec()
для отправки запроса.
Идеи о том, как увидеть, какие поля сообщений отправляются?
Ответы:
Вы можете включить
CURLOPT_VERBOSE
опцию:Когда
CURLOPT_VERBOSE
установлено, вывод записывается в STDERR или файл, указанный с помощьюCURLOPT_STDERR
. Вывод очень информативный.Вы также можете использовать tcpdump или wireshark для просмотра сетевого трафика.
источник
CURLINFO_HEADER_OUT
вTRUE
. Насколько я могу сказать ...Вы можете включить эту
CURLOPT_VERBOSE
опцию и записать эту информацию (временно)CURLOPT_STDERR
:Вы можете прочитать его после того, как curl выполнит запрос:
(Первоначально я ответил на подобное, но более подробно в связанном вопросе.)
Более подробную информацию, такую как метрики о последнем запросе, можно получить через
curl_getinfo
. Эта информация также может быть полезна для отладки запросов curl. В качестве примера использования я обычно оборачиваю это в функцию:источник
Вот более простой код для того же:
где $ fp - дескриптор файла для вывода ошибок. Например:
(Читайте на http://curl.haxx.se/mail/curlphp-2008-03/0064.html )
источник
Вот еще более простой способ, записывая напрямую в php вывод ошибок
источник
Чтобы просто получить информацию о запросе CURL, сделайте это:
источник
Вывести отладочную информацию в STDERR:
Вывести отладочную информацию в файл:
Смотрите https://github.com/andriichuk/php-curl-cookbook#debug-request
источник
Если вы просто хотите очень быстрый способ отладки результата:
источник
Другой (грубый) вариант - использовать netcat для вывода полного запроса:
И, конечно, отправив неудачный запрос к нему:
Примечательно, что это всегда будет зависать + терпеть неудачу, поскольку netcat никогда не создаст правильный HTTP-ответ. Это действительно просто для проверки того, что действительно было отправлено. Конечно, лучшим вариантом является использование службы отладки http-запросов .
источник