Запыт павінен выкарыстоўваць 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 адносна часу жыцця кліента і захоўвайце кліента/апрацоўшчык для нагрузкі замест перастварэння пулаў злучэнняў для кожнага запыту. Правярайце вернуты статус: працоўны шлях проксі ўсё адно можа перадаць адмову сайта.

Падобныя артыкулы