ວາງຫົວຂໍ້ CONNECT ຂອງ Go ໃສ່ Transport
ສົ່ງຫົວຂໍ້ທີ່ຈຳເປັນໄປຫາ HTTP proxy ໃນລະຫວ່າງ CONNECT ໂດຍບໍ່ໃສ່ມັນໃສ່ຄຳຮ້ອງປາຍທາງ.
ຫົວຂໍ້ທີ່ເພີ່ມເຂົ້າໃນ http.Request.Header ອະທິບາຍຄຳຮ້ອງປາຍທາງ. ເມື່ອ HTTPS ໃຊ້ HTTP proxy, transport ຈະເຮັດ CONNECT ກ່ອນ. ຫົວຂໍ້ຂອງຄຳຮ້ອງປາຍທາງບໍ່ແມ່ນ API ການຕັ້ງຄ່າທົ່ວໄປສຳລັບການແລກປ່ຽນກ່ອນໜ້ານັ້ນ.
ສຳລັບຫົວຂໍ້ຄົງທີ່ທີ່ proxy ຂອງທ່ານຕ້ອງການ, ຕັ້ງຄ່າ ProxyConnectHeader ຂອງ transport:
transport := &http.Transport{
Proxy: http.ProxyURL(proxyURL),
ProxyConnectHeader: http.Header{
"X-Proxy-Account": []string{"example-account"},
},
}ນີ້ proxyURL ແມ່ນ URL ປາຍທາງທີ່ຖືກແຍກແລ້ວ. ຫົວຂໍ້ນີ້ເປັນຕົວຢ່າງ ແລະ ມີປະໂຫຍດພຽງແຕ່ເມື່ອຜູ້ດຳເນີນການ proxy ກຳນົດຊ່ອງຂໍ້ມູນແບບນັ້ນ.
ສຳລັບຄ່າທີ່ເລືອກຕາມ proxy ຫຼື ປາຍທາງ, ໃຫ້ໃຊ້ GetProxyConnectHeader. callback ທີ່ມີເອກະສານຈະໄດ້ຮັບ URL ຂອງ proxy ແລະ ເປົ້າໝາຍ CONNECT. ເມື່ອ callback ນີ້ບໍ່ແມ່ນ nil, ຊ່ອງຂໍ້ມູນຄົງທີ່ ProxyConnectHeader ຈະຖືກລະເລີຍ.
ຮັກສາຄ່າໃຫ້ຢູ່ໃນຂອບເຂດທີ່ໝາຍໄວ້. ເຄື່ອງໝາຍບັນຊີທີ່ສຳລັບ proxy ເທົ່ານັ້ນເປັນຂອງການແລກປ່ຽນກັບ proxy; ຄ່າອະນຸຍາດຂອງເວັບໄຊຕ໌ເປັນຂອງຄຳຮ້ອງປາຍທາງ. ຖ້າ callback ບໍ່ສາມາດສ້າງຄ່າ handshake ທີ່ຈຳເປັນໄດ້, ໃຫ້ສົ່ງຄືນຂໍ້ຜິດພາດຂອງມັນ ແທນທີ່ຈະສົ່ງຄຳຮ້ອງທີ່ຕັ້ງຄ່າຕ່າງອອກໄປຢ່າງງຽບໆ.
ການຕັ້ງຄ່າເຫຼົ່ານີ້ປັບແຕ່ງການຈັດການ CONNECT. ພວກມັນບໍ່ໄດ້ປະດິດພິທີການກວດສອບຕົວຕົນແບບພິເສດ ຫຼື ປ່ຽນນະໂຍບາຍການເຂົ້າເຖິງຂອງບໍລິການ proxy.