Sarlavha qatorlarini javob tanasidan alohida to'plang. Proksi orqali uzatish CONNECT, autentifikatsiya, qayta yo'naltirish va manzil javobi sarlavhalarini bitta amalda yetkazishi mumkin:

$headerLines = [];
curl_setopt($handle, CURLOPT_HEADERFUNCTION,
    function ($handle, $line) use (&$headerLines) {
        $headerLines[] = $line;
        return strlen($line);
    }
);

Bu qayta chaqiruv xom qatorlar tartibini saqlaydi va qabul qilingan baytlar sonini qaytaradi. U to'liq qatorlarni oladi; lekin hali ularni javoblarga guruhlamaydi va yakuniy veb-sayt sarlavhalarini tanlamaydi.

Tartibni bloklar sifatida talqin qiling

HTTP holat qatori javob blokini boshlaydi, bo'sh qator esa uning sarlavhalarini tugatadi. Yakuniy manzil javobini tanlashdan oldin bu chegaralarni saqlang. Oraliq autentifikatsiya urinishlari va qayta yo'naltirishlar har biri bloklar qo'shishi mumkin.

Trailerlar keyinroq qayta chaqiruv orqali kelishi mumkin. Har bir keyingi maydonni birinchi javobga ulash o'rniga ularni boshlang'ich sarlavhalardan ajratish uchun yetarli parser holatini saqlang.

Tunnel dalilini saqlang yoki bostiring

HTTPS tunnelining CONNECT holati uchun CURLINFO_HTTP_CONNECTCODE ni alohida o'qing. Qabul qilingan tunnel veb-saytning muvaffaqiyatli javobini isbotlamaydi.

Agar to'plovchiga CONNECT sarlavhalari kerak bo'lmasa, CURLOPT_SUPPRESS_CONNECT_HEADERS ularning sozlangan sarlavha chiqishiga va qayta chaqiruv yo'llariga yetkazilishini boshqaradi. Bog'langan libcurl va PHP buildida qo'llab-quvvatlashni tekshiring. Bostirish to'plashni soddalashtiradi, lekin diagnostikaga yordam beradigan sarlavha darajasidagi tunnel dalilini olib tashlaydi.

Tanani qat'iy siljish yoki HTML tegini qidirish orqali tiklamang. Sarlavha o'lchamlari turlicha, oraliq javoblar farq qiladi va tana ikkilik yoki bo'sh bo'lishi mumkin. Eski versiyaga xos xato hisoboti taxmin qilingan siljishni oqlamaydi.

Tana bilan ishlashni alohida saqlang va to'plash yoki tahlil muvaffaqiyatsiz bo'lsa, uzatish xatosini kuzatilgan javob bosqichlari bilan birga saqlang. Bu uzilgan qayta chaqiruvni, buzilgan ilova ma'lumotlarini va rad etilgan proksi almashinuvini ajratadi.

O'xshash maqolalar