ຮັກສາ ProxyFromEnvironment ເມື່ອປັບແຕ່ງ HTTP transport ຂອງ Go
ຮັກສາການເລືອກ proxy ຈາກສະພາບແວດລ້ອມຂອງ Go ເມື່ອທ່ານປັບແຕ່ງເວລາກຳນົດ ຫຼື ສະລະບົບການເຊື່ອມຕໍ່, ແທນທີ່ຈະປ່ຽນຄ່າເລີ່ມຕົ້ນດ້ວຍຊ່ອງ Proxy ທີ່ຫວ່າງເປົ່າ.
DefaultTransport ມາດຕະຖານຂອງ Go ຕັ້ງ Proxy ເປັນ ProxyFromEnvironment. &http.Transport{} ທີ່ສ້າງແຍກຕ່າງຫາກມີຟັງຊັນ Proxy ເປັນ nil, ດັ່ງນັ້ນຈຶ່ງບໍ່ເລືອກ proxy ໃດໆ.
ຄວາມແຕກຕ່າງນີ້ອາດຈະປາກົດຫຼັງຈາກເພີ່ມ transport ພຽງເພື່ອປ່ຽນເວລາກຳນົດ. ເມື່ອຄ່າເລີ່ມຕົ້ນມາດຕະຖານຍັງຕິດຕັ້ງຢູ່, ຈົ່ງ clone ມັນແລ້ວປ່ຽນຊ່ອງທີ່ທ່ານຕ້ອງການ:
transport := http.DefaultTransport.(*http.Transport).Clone()
transport.ResponseHeaderTimeout = 15 * time.Second
client := &http.Client{
Transport: transport,
Timeout: 30 * time.Second,
}clone ຮັກສາການເລືອກ proxy ຈາກສະພາບແວດລ້ອມ ແລະ ການຕັ້ງຄ່າ transport ເລີ່ມຕົ້ນອື່ນໆ. ການກວດສອບປະເພດສົມມຸດວ່າແອັບຯບໍ່ໄດ້ປ່ຽນ DefaultTransport ດ້ວຍ RoundTripper ອື່ນ.
ສຳລັບ transport ທີ່ສ້າງຈາກສູນຢ່າງຕັ້ງໃຈ, ຈົ່ງຕັ້ງ Proxy: http.ProxyFromEnvironment ຢ່າງຊັດເຈນເມື່ອມັນເປັນນະໂຍບາຍການເສັ້ນທາງຂອງມັນ. ຟັງຊັນ ProxyURL ທີ່ຊັດເຈນສະແດງນະໂຍບາຍທີ່ແຕກຕ່າງ: ຕົວກາງໜຶ່ງທີ່ຖືກເລືອກ.
ຕັ້ງຄ່າ transport ກ່ອນທີ່ຄຳຮ້ອງຂໍພ້ອມກັນຈະໃຊ້ມັນ, ແລ້ວໃຊ້ມັນຄືນສຳລັບພາລະວຽກ. ການປ່ຽນວັດຖຸເລີ່ມຕົ້ນທີ່ແບ່ງປັນອາດສົ່ງຜົນຕໍ່ລູກຄ້າທີ່ບໍ່ກ່ຽວຂ້ອງ.
ການຕັ້ງຄ່າ TLS ແບບກຳນົດເອງແມ່ນແຍກຕ່າງຫາກ. ການປິດການກວດສອບໃບຢັ້ງຢືນບໍ່ຈຳເປັນເພື່ອຮັກສາການຄົ້ນພົບ proxy, ແລະ ມັນຈະປ່ຽນຄວາມປອດໄພຂອງທຸກຄຳຮ້ອງຂໍ HTTPS ທີ່ກົງກັນ.