.NET HttpClient суроолорун прокси аркылуу жөнөтүү
WebProxy'ни HttpClientHandler ичинде баптап, прокси жолунун өчүк калышынан же туура эмес кардарга байланышуусунан качыңыз.
Суроо сиздин прокси иштеткичиңиз менен түзүлгөн HttpClient объектисин колдонушу керек. Байланышы жок WebProxy объектисин түзүү башка кардардын жолун өзгөртпөйт.
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 прокси тизмесиндеги чыныгы HTTP проксиге алмаштырыңыз. Бул жогорку деңгээлдеги синтаксис заманбап C# консоль долбооруна туура келет; эски долбоорлор операторлорду асинхрондук Main ичине жайгаштыра алат.
Иштеткичтин эки касиетин тең текшериңиз: Proxy акыркы чекитти тандайт, UseProxy=true колдонууну иштетет. Чекит өзүнчө иштеп, колдонмодо иштебесе, код UseProxy касиетин өчүрбөгөнүн жана чакыруу ушул нусканы колдонгонун ырастаңыз. Өзүнчө иштеткич процесс же ОС проксини табышына көз карандылыктан куткарат.
Прокси оператору эсеп берсе, NetworkCredential объектисин WebProxy.Credentials касиетине дайындаңыз. Сайттын Authorization'у башка баскычка тиешелүү, ачык IP:port жазуусу демейки кирүү маалыматын бербейт. http:// угуучусу HTTPSти туннель аркылуу өткөрө алат; кадимки максат текшерүүсүн сактаңыз.
Бул кыска программа чыкканда объектилерди бошотот. Кайталанган кызмат чакырууларында .NET кардарынын өмүр узактыгы боюнча көрсөтмөлөрүн аткарып, ар суроодо байланыш пулдарын кайра түзбөстөн, иш жүгүнө ылайык кардарды/иштеткичти сактаңыз. Кайтарылган статусту караңыз: иштеген прокси жолу да сайттын баш тартуусун өткөрө алат.