Kailangang gamitin ng request ang HttpClient na binuo gamit ang iyong proxy handler. Hindi binabago ng paggawa ng hiwalay na WebProxy object ang ruta ng ibang 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());

Palitan ang address para sa dokumentasyon ng tunay na HTTP proxy mula sa serbisyo mo o sa HTTP proxy list. Ang top-level syntax na ito ay angkop sa modernong C# console project; puwedeng ilagay ng mas lumang proyekto ang mga statement sa asynchronous na Main.

Suriin ang dalawang property ng handler: pinipili ng Proxy ang endpoint at pinapagana ng UseProxy=true ang paggamit nito. Kung gumagana nang hiwalay ang endpoint pero hindi sa app, tiyaking walang code na nag-o-off sa UseProxy at ang instance na ito ang gamit ng tawag. Hindi umaasa ang nakalaang handler sa proxy discovery ng process o OS.

Kapag may account na ibinigay ang operator ng proxy, magtalaga ng NetworkCredential sa WebProxy.Credentials property. Para sa ibang hop ang Authorization ng website, at walang default login ang pampublikong IP:port entry. Kayang magdala ng HTTPS sa tunnel ang http:// listener; panatilihin ang karaniwang destination verification.

Nire-release ng maikling programang ito ang mga object sa paglabas. Para sa paulit-ulit na service call, sundin ang gabay ng .NET sa client lifetime at panatilihin ang client/handler para sa workload sa halip na buuin muli ang connection pool sa bawat request. Tingnan ang ibinalik na status: maaaring magdala pa rin ng pagtanggi ng website ang gumaganang proxy path.

Kaugnay na mga artikulo