ເກັບ .NET handler ແຍກຕ່າງຫາກສຳລັບແຕ່ລະບັນຊີ proxy
ສ້າງ handler ແຍກຕ່າງຫາກສຳລັບບັນຊີທີ່ໃຊ້ພ້ອມກັນ ແທນການປ່ຽນ WebProxy.Credentials ເທິງ transport ທີ່ກຳລັງບໍລິການຄຳຂໍແລ້ວ.
transport ອາດເກັບວັດຖຸຜູ້ໃຫ້ຂໍ້ມູນຢືນຢັນ proxy ທີ່ເລືອກຕອນສ້າງ pool manager ຂອງມັນ. ການປ່ຽນ WebProxy.Credentials ຫຼັງຈາກນັ້ນບໍ່ແມ່ນການສະຫຼັບບັນຊີທີ່ໜ້າເຊື່ອຖື.
ສ້າງເສັ້ນທາງ ແລະ ບັນຊີພ້ອມກັນກ່ອນໃຊ້ client:
var proxy = new System.Net.WebProxy(proxyEndpoint)
{
Credentials = new System.Net.NetworkCredential(proxyUser, proxyPassword)
};
var handler = new System.Net.Http.HttpClientHandler
{
UseProxy = true,
Proxy = proxy
};
var client = new System.Net.Http.HttpClient(handler);ຈຸດປາຍທາງ ແລະ ຂໍ້ມູນຢືນຢັນ ມາຈາກການຕັ້ງຄ່າແອັບພລິເຄຊັນ. ສ້າງ handler ອີກອັນໜຶ່ງສຳລັບຕົວຕົນທີສອງ; HttpClient ອີກອັນທີ່ແບ່ງປັນ handler ທຳອິດກໍແບ່ງປັນນະໂຍບາຍຂອງມັນ.
ຜູ້ໃຫ້ ICredentials ແບບກຳນົດເອງສາມາດຕອບສິ່ງທ້າທາຍພາຍຫຼັງໄດ້ ແຕ່ບໍ່ສາມາດຕິດປ້າຍ tunnel ທີ່ຕັ້ງຂຶ້ນແລ້ວເປັນບັນຊີອື່ນໄດ້. ການກຳນົດຊື່ຜູ້ໃຊ້/ລະຫັດຜ່ານທົ່ວໂລກອັນດຽວອ້ອມການເອີ້ນ async ເຮັດໃຫ້ເວລາສິ່ງທ້າທາຍ ແລະ ຄວາມເປັນເຈົ້າຂອງບັນຊີຂັດແຍ່ງກັນ.
ເກັບຊຸດ client ຈຳກັດເມື່ອຕ້ອງການໃຊ້ຄືນ. ລະບາຍວຽກເກົ່າກ່ອນຖິ້ມ transport ຂອງມັນ. handler ໃໝ່ຕໍ່ຄຳຂໍໜຶ່ງເຮັດໃຫ້ສູນເສຍ pool ການເຊື່ອມຕໍ່; ການເກັບທຸກບັນຊີໃນປະຫວັດສາດໄວ້ຕະຫຼອດໄປເຮັດໃຫ້ພວກມັນເຕີບໃຫຍ່ໂດຍບໍ່ມີຂອບເຂດ.