using var handler = new HttpClientHandler
{
    UseProxy = true,
    Proxy = new WebProxy("http://proxy.example:8080")
};
using var client = new HttpClient(handler);

string html = await client.GetStringAsync(
    "https://www.example.com/catalog");
var document = new HtmlAgilityPack.HtmlDocument();
document.LoadHtml(html);

ສ່ວນ .NET ທີ່ທັນສະໄໝນີ້ໃຊ້ System.Net ແລະ System.Net.Http. ລູກຄ້າທີ່ຕັ້ງຄ່າແລ້ວເປັນຜູ້ຈັດການເສັ້ນທາງເຄືອຂ່າຍ, ແລະ Html Agility Pack ໄດ້ຮັບສາຍອັກສອນ HTML ທີ່ສົ່ງກັບມາ. ຮັກສາລູກຄ້າທີ່ຕັ້ງຄ່າຢ່າງເໝາະສົມສຳລັບການເຮັດວຽກຕໍ່ເນື່ອງ ແທນການສ້າງສະລອຍຂອງມັນຄືນໃໝ່ສຳລັບທຸກໜ້າ.

ສຳລັບຕົວຢ່າງໜ້າສາທາລະນະນີ້, ຜູ້ສະໝັກທີ່ບໍ່ໄດ້ພິສູດຕົວຕົນຈາກ ລາຍຊື່ພຣັອກຊີ HTTP ສາມາດແທນຕົວກາງໄດ້. ແທນປາຍທາງແຍກຕ່າງຫາກ. URL ຂອງເວັບໄຊຮັກສາເອກະລັກ TLS ຂອງມັນ. ຂໍ້ມູນຮັບຮອງພຣັອກຊີທີ່ພິສູດແລ້ວເປັນຂອງ WebProxy; ທັງຂໍ້ມູນຮັບຮອງຂອງເວັບໄຊ ແລະ ການກວດສອບທີ່ປິດໄວ້ ບໍ່ໄດ້ແທນພວກມັນ.

GetStringAsync ຖືວ່າສະຖານະ HTTP ທີ່ບໍ່ສຳເລັດເປັນຄວາມຜິດພາດ. ຢ່າປ່ຽນການດາວໂຫລດທີ່ລົ້ມເຫລວໃຫ້ເປັນ HtmlDocument ຫວ່າງເປົ່າ. ຖ້າແອັບພລິເຄຊັນຕ້ອງການຫົວຂໍ້, ລາຍລະອຽດສະຖານະ ຫຼື ເນື້ອຄວາມຜິດພາດ, ໃຫ້ໃຊ້ການດຳເນີນການ HTTP ທີ່ມຸ່ງໄປຫາການຕອບສະໜອງ ແລະ ກວດສອບມັນກ່ອນການແຍກວິເຄາະ.

ວິທີການສາຍອັກສອນຫຼີກລ່ຽງການແປງ UTF-8 ເພີ່ມເຕີມແບບບໍ່ມີເງື່ອນໄຂຂອງໄບຕ໌ດິບ. ຖ້າທ່ານດຶງໄບຕ໌ໂດຍເຈດຕະນາ, ໃຫ້ຖ່າຍທອດຂໍ້ກຳນົດການເຂົ້າລະຫັດຂອງການຕອບສະໜອງ ແລະ ເອກະສານໄປສູ່ການຖອດລະຫັດ.

LoadHtml ສ້າງເອກະສານທີ່ແຍກວິເຄາະແລ້ວ; ມັນບໍ່ປະຕິບັດສະຄຣິບ, ບໍ່ໂຫຼດຮູບແບບ ຫຼື ຕິດຕາມລິ້ງ. ແກ້ໄຂລິ້ງພີ້ມຕິດກັນໂດຍອີງໃສ່ຕຳແໜ່ງຂອງການຕອບສະໜອງ, ແລະ ຈື່ວ່າອົງປະກອບທີ່ບຣາວເຊີສະແດງອາດບໍ່ມີຢູ່ໃນແຫຼ່ງທີ່ດາວໂຫລດມາ. ແຕ່ລະການຕອບສະໜອງຄວນສ້າງເອກະສານຂອງຕົນເອງ ເຖິງແມ່ນວ່າຄຳຮ້ອງຈະແບ່ງປັນລູກຄ້າ HTTP ທີ່ຕັ້ງຄ່າດຽວກັນກໍຕາມ.

ບົດຄວາມທີ່ກ່ຽວຂ້ອງ