Saya ingin melihat bidang pos dalam permintaan itu sebelum saya mengirimnya. (Untuk tujuan debugging).
Perpustakaan PHP (kelas) yang saya gunakan sudah dibuat (bukan oleh saya), jadi saya mencoba memahaminya.
Sejauh yang saya tahu, digunakan curl_setopt()
untuk mengatur opsi yang berbeda seperti header dan semacamnya dan kemudian digunakan curl_exec()
untuk mengirim permintaan.
Gagasan tentang cara melihat bidang pos apa yang sedang dikirim?
Jawaban:
Anda dapat mengaktifkan
CURLOPT_VERBOSE
opsi:Ketika
CURLOPT_VERBOSE
diatur, output ditulis ke STDERR atau file yang ditentukan menggunakanCURLOPT_STDERR
. Outputnya sangat informatif.Anda juga dapat menggunakan tcpdump atau wireshark untuk menonton lalu lintas jaringan.
sumber
CURLINFO_HEADER_OUT
untukTRUE
. Sejauh yang saya tahu ...Anda dapat mengaktifkan
CURLOPT_VERBOSE
opsi dan mencatat informasi itu ke (sementara)CURLOPT_STDERR
:Anda kemudian dapat membacanya setelah ikal telah melakukan permintaan:
(Saya awalnya menjawab yang serupa tetapi lebih luas dalam pertanyaan terkait.)
Informasi lebih lanjut seperti metrik tentang permintaan terakhir tersedia melalui
curl_getinfo
. Informasi ini dapat berguna untuk men-debug permintaan curl juga. Contoh penggunaan, saya biasanya membungkusnya menjadi fungsi:sumber
Berikut adalah kode yang lebih sederhana untuk hal yang sama:
di mana $ fp adalah pegangan file untuk menghasilkan kesalahan. Sebagai contoh:
(Baca di http://curl.haxx.se/mail/curlphp-2008-03/0064.html )
sumber
Inilah cara yang bahkan lebih sederhana, dengan menulis langsung ke output kesalahan php
sumber
Untuk mendapatkan informasi permintaan CURL, lakukan ini:
sumber
Keluarkan info debug ke STDERR:
Keluarkan info debug ke file:
Lihat https://github.com/andriichuk/php-curl-cookbook#debug-request
sumber
Jika Anda hanya ingin cara yang sangat cepat untuk men-debug hasilnya:
sumber
Opsi (kasar) lainnya adalah menggunakan netcat untuk membuang permintaan penuh:
Dan tentu saja mengirimkan permintaan yang gagal ke sana:
Khususnya itu akan selalu hang + gagal, karena netcat tidak akan pernah membangun respons HTTP yang valid. Ini benar-benar hanya untuk memeriksa apa yang benar-benar dikirim. Opsi yang lebih baik, tentu saja, menggunakan layanan debug permintaan http .
sumber