ຄຳຂໍຕ້ອງໃຊ້ HttpClient ທີ່ສ້າງດ້ວຍ proxy handler ຂອງທ່ານ. ການສ້າງ object WebProxy ທີ່ບໍ່ກ່ຽວຂ້ອງບໍ່ປ່ຽນທາງຂອງ client ອື່ນ.

using System;
using System.Net;
using System.Net.Http;

var proxy = new WebProxy("http://203.0.113.10:8080")
{
    BypassProxyOnLocal = false
};

using var handler = new HttpClientHandler
{
    Proxy = proxy,
    UseProxy = true
};

using var client = new HttpClient(handler)
{
    Timeout = TimeSpan.FromSeconds(15)
};

using var response = await client.GetAsync("https://example.com/");
Console.WriteLine((int)response.StatusCode);
Console.WriteLine(await response.Content.ReadAsStringAsync());

ແທນທີ່ຢູ່ເອກະສານດ້ວຍ HTTP proxy ຈິງຈາກບໍລິການ ຫຼືລາຍຊື່ HTTP proxy. Top-level syntax ນີ້ເໝາະກັບໂຄງການ C# console ທັນສະໄໝ; ໂຄງການເກົ່າອາດໃສ່ຄຳສັ່ງໃນ asynchronous Main.

ກວດຄຸນສົມບັດ handler ທັງສອງ: Proxy ເລືອກ endpoint ແລະ UseProxy=true ເປີດໃຊ້ມັນ. ຖ້າ endpoint ໃຊ້ໄດ້ແຍກກັນ ແຕ່ໃນແອັບບໍ່ໄດ້ ໃຫ້ຢືນຢັນວ່າບໍ່ມີລະຫັດປິດ UseProxy ແລະ call ໃຊ້ instance ນີ້. Handler ສະເພາະຫຼີກການພຶ່ງພາການຄົ້ນ proxy ຂອງ process ຫຼື OS.

ເມື່ອຜູ້ດຳເນີນ proxy ໃຫ້ບັນຊີ ໃຫ້ກຳນົດ NetworkCredential ໃສ່ຄຸນສົມບັດ WebProxy.Credentials. Authorization ຂອງເວັບເປັນຂອງອີກຂັ້ນໜຶ່ງ ແລະລາຍການ IP:port ສາທາລະນະບໍ່ໃຫ້ຂໍ້ມູນ login ເລີ່ມຕົ້ນ. Listener http:// ຂົນ HTTPS ຜ່ານອຸໂມງໄດ້; ຮັກສາການຢືນຢັນປາຍທາງຕາມປົກກະຕິ.

ໂປຣແກຣມສັ້ນນີ້ປ່ອຍ object ເມື່ອອອກ. ສຳລັບ service call ຊ້ຳໆ ໃຫ້ຕາມຄຳແນະນຳ .NET client lifetime ແລະເກັບ client/handler ໄວ້ສຳລັບພາລະງານ ແທນສ້າງ connection pool ໃໝ່ທຸກຄຳຂໍ. ກວດ status ທີ່ສົ່ງກັບ: ທາງ proxy ທີ່ໃຊ້ໄດ້ຍັງອາດຂົນຄຳປະຕິເສດຂອງເວັບ.

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