İstek, proxy işleyicinizle oluşturulan HttpClient nesnesini kullanmalıdır. İlgisiz bir WebProxy nesnesi oluşturmak başka bir istemcinin rotasını değiştirmez.

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());

Belge adresini hizmetinizden veya HTTP proxy listesinden gerçek bir HTTP proxyyle değiştirin. Bu üst düzey sözdizimi modern bir C# konsol projesine uyar; eski projeler ifadeleri asenkron Main içine koyabilir.

İşleyicinin iki özelliğini de kontrol edin: Proxy uç noktayı seçer, UseProxy=true kullanımını açar. Uç nokta ayrı çalışıp uygulamada çalışmıyorsa kodun UseProxy kullanımını kapatmadığını ve çağrının bu örneği kullandığını doğrulayın. Özel işleyici, süreç veya işletim sistemi keşfine bağımlılığı önler.

Proxy işletmecisi hesap verdiğinde NetworkCredential nesnesini WebProxy.Credentials özelliğine atayın. Web sitesi Authorization’ı farklı bir adım içindir; herkese açık IP:port kaydı varsayılan giriş bilgisi sağlamaz. http:// dinleyicisi HTTPS’yi tünelden taşıyabilir; normal hedef doğrulamasını koruyun.

Bu kısa program çıkarken nesneleri serbest bırakır. Tekrarlanan hizmet çağrılarında .NET istemci ömrü rehberini izleyin; her istekte bağlantı havuzlarını yeniden oluşturmak yerine iş yükü için istemci/işleyiciyi tutun. Dönen durumu inceleyin: çalışan proxy yolu yine de web sitesinin reddini taşıyabilir.

İlgili makaleler