Integration

Shifter verwenden mit C# / .NET

Binden Sie Shifters Residential- und ISP-Proxys in jedes .NET-Projekt ein -- HttpClient, RestSharp, Flurl, Selenium und Playwright -- ohne Ihre Geschäftslogik anzupassen.

Schnellstart

Installieren

dotnet add package System.Net.Http

Grundlegende Nutzung

using System.Net;
using System.Net.Http;

var proxy = new WebProxy("http://p.shifter.io:443") {
    Credentials = new NetworkCredential(
        "customer-USERNAME-country-us-sid-123ABC",
        "PASSWORD"
    )
};

var handler = new HttpClientHandler { Proxy = proxy, UseProxy = true };
using var client = new HttpClient(handler) {
    Timeout = TimeSpan.FromSeconds(30)
};

var json = await client.GetStringAsync("https://ipinfo.io/json");
Console.WriteLine(json);
// {"ip": "154.16.xxx.xxx", "city": "New York", "country": "US", ...}

Funktionen

Sofortige Unterstützung für HttpClient, RestSharp, Flurl, HttpWebRequest und jeden .NET-HTTP-Client, der einen WebProxy akzeptiert
Standardmäßig Rotation pro Anfrage, mit `sid` für Sticky Sessions und `ttl-N` für zeitgesteuerte Pins von N Sekunden
Headless-Browser-Unterstützung über Selenium WebDriver und Playwright für .NET
HTTP, HTTPS und SOCKS5 Protokolle am selben Gateway-Endpunkt
Geo-Targeting in 195+ Ländern über Username-Parameter - kein zusätzliches Paket erforderlich
Kompatibel mit .NET 6, .NET 7, .NET 8 und .NET Framework 4.7.2+ -- funktioniert mit C#, F#, VB.NET

Beispiele

HttpClient mit Sticky Session

Der Standard-.NET-HTTP-Client. Einmal konfigurieren und app-weit über IHttpClientFactory oder ein Singleton teilen -- dieselbe Residential IP wird für jede Anfrage mit einer übereinstimmenden `sid` wiederverwendet.

using System.Net;
using System.Net.Http;

static HttpClient ShifterClient(string country, string city, string sid)
{
    var proxy = new WebProxy("http://p.shifter.io:443") {
        Credentials = new NetworkCredential(
            $"customer-USERNAME-country-{country}-city-{city}-sid-{sid}-ttl-300",
            "PASSWORD"
        )
    };

    var handler = new HttpClientHandler {
        Proxy = proxy,
        UseProxy = true,
        AutomaticDecompression = DecompressionMethods.All
    };

    var client = new HttpClient(handler) { Timeout = TimeSpan.FromSeconds(30) };
    client.DefaultRequestHeaders.Add("User-Agent",
        "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36");
    return client;
}

var c = ShifterClient("uk", "london", Guid.NewGuid().ToString("N")[..8]);

foreach (var path in new[] { "/login", "/dashboard", "/orders" })
{
    var resp = await c.GetAsync($"https://example.co.uk{path}");
    Console.WriteLine($"{path} {(int)resp.StatusCode} {(await resp.Content.ReadAsStringAsync()).Length}");
}

RestSharp

RestSharp umhüllt HttpClient mit einem Fluent-Builder, automatischer JSON-Deserialisierung und Wiederholungsrichtlinien. Konfigurieren Sie den Proxy in den RestClientOptions.

using RestSharp;
using System.Net;

public record Product(int Id, string Name, decimal Price);

var options = new RestClientOptions("https://api.example.de") {
    Proxy = new WebProxy("http://p.shifter.io:443") {
        Credentials = new NetworkCredential(
            "customer-USERNAME-country-de-sid-456DEF",
            "PASSWORD"
        )
    },
    Timeout = TimeSpan.FromSeconds(30)
};

var client = new RestClient(options);

var request = new RestRequest("/products");
request.AddHeader("User-Agent",
    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36");

var products = await client.GetAsync<List<Product>>(request);
foreach (var p in products!)
    Console.WriteLine($"{p.Id} {p.Name} — {p.Price:C}");

Selenium WebDriver (.NET)

Steuern Sie eine echte Chrome- / Edge- / Firefox-Instanz über Shifter für JavaScript-gerenderte Ziele. Kombinieren Sie es mit Shifters IP-Whitelist zur Headless-Authentifizierung.

using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Proxy = OpenQA.Selenium.Proxy;

var seleniumProxy = new Proxy {
    HttpProxy = "p.shifter.io:443",
    SslProxy  = "p.shifter.io:443"
};

var options = new ChromeOptions { Proxy = seleniumProxy };
options.AddArguments("--headless=new",
    "--user-agent=Mozilla/5.0 (Linux) AppleWebKit/537.36");

// For username-password auth in headless mode, pair with Shifter's
// IP whitelist or use selenium-wire — Chrome ignores credentials in
// headless mode without a sidecar extension.

using var driver = new ChromeDriver(options);
driver.Navigate().GoToUrl("https://example.com");

var title = driver.Title;
var html  = driver.PageSource;
Console.WriteLine($"{title} — {html.Length} bytes");

Playwright für .NET

Microsoft Playwright steuert Chromium, Firefox und WebKit aus C#. Konfigurieren Sie den Proxy in den Launch-Optionen -- Anmeldedaten inline, keine Erweiterung erforderlich.

using Microsoft.Playwright;

using var playwright = await Playwright.CreateAsync();
await using var browser = await playwright.Chromium.LaunchAsync(new() {
    Proxy = new() {
        Server   = "http://p.shifter.io:443",
        Username = "customer-USERNAME-country-fr-city-paris-sid-789GHI",
        Password = "PASSWORD"
    }
});

var context = await browser.NewContextAsync(new() {
    UserAgent = "Mozilla/5.0 (Windows) AppleWebKit/537.36"
});

var page = await context.NewPageAsync();
await page.GotoAsync("https://example.fr");

var headlines = await page.Locator(".headline").AllTextContentsAsync();
foreach (var h in headlines)
    Console.WriteLine(h);
FAQ

Häufig gestellte Fragen

Häufige Fragen zur Verwendung von Shifter mit C# / .NET.

Erstellen Sie einen WebProxy, der auf `http://p.shifter.io:443` zeigt, mit Anmeldeinformationen, die ein NetworkCredential mit Ihrem Shifter-Benutzernamen und Passwort enthalten. Übergeben Sie ihn an einen HttpClientHandler mit UseProxy = true und leiten Sie diesen Handler an einen neuen HttpClient weiter. Derselbe Client kann über IHttpClientFactory sicher in der gesamten Anwendung gemeinsam genutzt werden.

Setzen Sie die Proxy-Eigenschaft in den RestClientOptions auf einen WebProxy mit NetworkCredential. RestSharp umhüllt den zugrunde liegenden HttpClient -- jede Anfrage des RestClients wird über Shifter geleitet. Kompatibel mit RestSharp 110+.

Ja. Setzen Sie das Proxy-Feld in Playwrights BrowserTypeLaunchOptions mit Server, Username und Password. Dasselbe Setup funktioniert für Chromium, Firefox und WebKit. Keine Erweiterung erforderlich -- Anmeldedaten werden inline übergeben.

Fügen Sie dem Proxy-Benutzernamen eine Session-ID hinzu -- zum Beispiel `customer-USERNAME-country-us-sid-123ABC`. Jede .NET-Anfrage, die sich mit derselben sid authentifiziert, verwendet dieselbe Residential IP. Fügen Sie `ttl-N` hinzu, um diese IP für bis zu N Sekunden zu fixieren.

Ja. Registrieren Sie einen benannten HttpClient über IHttpClientFactory in Program.cs, konfigurieren Sie dessen Handler zur Verwendung eines Shifter WebProxy und injizieren Sie IHttpClientFactory.CreateClient("shifter") überall dort, wo Sie ihn benötigen. Funktioniert in MVC, Minimal APIs und Blazor.

Es ist kein NuGet-Paket erforderlich. Shifter spricht reines HTTP / SOCKS5 -- richten Sie Ihren vorhandenen HttpClient auf `p.shifter.io:443`. Das hält Ihre Projektdatei schlank und funktioniert mit .NET Framework, .NET Core und .NET 5+.

Jetzt starten

Shifter verwenden mit C# / .NET

Fügen Sie Shifters 205M+ Residential- und ISP-Proxys in unter 5 Minuten zu Ihrem .NET-Stack hinzu. Funktioniert mit HttpClient, RestSharp, Selenium und Playwright.

Shifter kostenlos testenIn Minuten eingerichtet. Jederzeit kuendbar.