Барањето мора да користи 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 насоките за животниот век на клиентот и задржете го клиентот/обработувачот за оптоварувањето, наместо да ги обновувате базените на врски за секое барање. Проверете го вратениот статус: исправна прокси рута и натаму може да пренесе одбивање од сајтот.

Поврзани статии