ຄຳຕອບຂອງ Requests ເບິ່ງຄືເສຍຫາຍຢູ່ຫຼັງພຣັອກຊີ? ກວດສອບການສະໜັບສະໜູນ Brotli
Accept-Encoding:br ທີ່ຄັດລອກອາດໄປໄວກວ່າການສະໜັບສະໜູນຕົວຖອດລະຫັດໃນສະພາບແວດລ້ອມ Requests ທີ່ໂຮສ.
ປຽບທຽບແລັບທັອບ ແລະ ຂະບວນການທີ່ໂຮສໃນສອງຊັ້ນທີ່ແຕກຕ່າງກັນ:
| ຊັ້ນ | ຄຳຖາມ |
|---|---|
| Content-Encoding | ລູກຄ້າສາມາດຖອດການບີບອັດໄບຕ໌ gzip/deflate/Brotli ທີ່ສົ່ງກັບມາໄດ້ບໍ່? |
| Charset | ໄບຕ໌ທີ່ຖອດແລ້ວກາຍເປັນຂໍ້ຄວາມໄດ້ແນວໃດ? |
Requests ປົກກະຕິຈັດການ gzip/deflate; Brotli ຕ້ອງການຫ້ອງສະໝຸດທີ່ຕິດຕັ້ງແລ້ວ ແລະ ຖືກສະໜັບສະໜູນ. Accept-Encoding ທີ່ຄັດລອກດ້ວຍມືອາດປະກາດ br ໃນຂະນະທີ່ສະພາບແວດລ້ອມນີ້ຖອດລະຫັດບໍ່ໄດ້. ການເລືອກຂໍ້ຄວາມ UTF-8 ບໍ່ໄດ້ຖອດການບີບອັດ Brotli.
ເມື່ອຈຳກັດການເຈລະຈາໂດຍເຈດຕະນາ:
response = session.get(
url,
proxies={"https": "http://proxy.example:8080"},
headers={"Accept-Encoding": "gzip, deflate"},
timeout=30,
)
response.raise_for_status()ໃຊ້ Session ທີ່ມີຢູ່, URL HTTPS ແລະ ສ່ວນຫົວ/ການຢືນຢັນຕົວຕົນທີ່ຈຳເປັນ. ປຽບທຽບ Accept-Encoding ທີ່ອອກໄປ, Content-Encoding ທີ່ເຂົ້າມາ ແລະ ການສະໜັບສະໜູນແພັກເກດໃນທັງສອງເຄື່ອງ; ຕົວກາງທີ່ແປງຂໍ້ມູນກໍອາດໃຫ້ເມຕາດາຕາທີ່ລ້າສະໄໝ. ການປຽບທຽບໜ້າສາທາລະນະແຍກຕ່າງຫາກອາດໃຊ້ ລາຍຊື່ພຣັອກຊີ HTTP ສຳລັບ URL ພຣັອກຊີຂອງຕົນບ່ອນທີ່ອະນຸຍາດຕົວກາງສາທາລະນະ, ໂດຍບໍ່ມີຂໍ້ມູນຢືນຢັນພຣັອກຊີທີ່ສືບທອດ, ສ່ວນຫົວບັນຊີທີ່ຄັດລອກ ຫຼື ຂໍ້ມູນເນື້ອຫາເອກະຊົນ.
ຖ້າບໍ່ດັ່ງນັ້ນ ໃຫ້ເລືອກການເຈລະຈາປົກກະຕິຂອງລູກຄ້າ. ສ່ວນຕິດຕໍ່ content/text ທີ່ສະດວກຂອງ Requests ຖອດລະຫັດການເຂົ້າລະຫັດທີ່ຮອງຮັບໄດ້, ດັ່ງນັ້ນຢ່າຖອດການບີບອັດຜົນລັບຂອງມັນອີກພຽງເພາະສ່ວນຫົວບອກຊື່ມັນ.