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
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); 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+.
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.