Integración

Usa Shifter con C# / .NET

Integra los proxies residenciales e ISP de Shifter en cualquier proyecto .NET (HttpClient, RestSharp, Flurl, Selenium y Playwright) sin modificar tu lógica de negocio.

Inicio rápido

Instalar

dotnet add package System.Net.Http

Uso básico

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", ...}

Características

Compatibilidad directa con HttpClient, RestSharp, Flurl, HttpWebRequest y cualquier cliente HTTP de .NET que acepte un WebProxy
Rotación por solicitud de forma predeterminada, con `sid` para sesiones persistentes y `ttl-N` para fijar IPs durante N segundos
Compatibilidad con navegadores sin interfaz gráfica mediante Selenium WebDriver y Playwright para .NET
Protocolos HTTP, HTTPS y SOCKS5 en el mismo endpoint de pasarela
Geolocalización en más de 195 países mediante parámetros de nombre de usuario, sin necesidad de ningún paquete adicional
Compatible con .NET 6, .NET 7, .NET 8 y .NET Framework 4.7.2+, funciona con C#, F# y VB.NET

Ejemplos

HttpClient con sesión persistente

El cliente HTTP estándar de .NET. Configúralo una vez y compártelo en toda la aplicación mediante IHttpClientFactory o un singleton: la misma IP residencial se reutilizará en cada solicitud con un `sid` coincidente.

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 envuelve HttpClient con un constructor fluido, deserialización automática de JSON y políticas de reintento. Configura el proxy en 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)

Controla una instancia real de Chrome, Edge o Firefox a través de Shifter para objetivos con JavaScript. Combínalo con la lista blanca de IPs de Shifter para autenticación sin interfaz gráfica.

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 para .NET

Microsoft Playwright controla Chromium, Firefox y WebKit desde C#. Configura el proxy en las opciones de lanzamiento: credenciales incluidas, sin necesidad de extensión.

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);
Preguntas frecuentes

Preguntas frecuentes

Preguntas frecuentes sobre el uso de Shifter con C# / .NET.

Crea un WebProxy apuntando a `http://p.shifter.io:443` con Credentials configurado como un NetworkCredential que contenga tu nombre de usuario y contraseña de Shifter. Pásalo a un HttpClientHandler con UseProxy = true y proporciona ese handler a un nuevo HttpClient. El mismo cliente puede compartirse de forma segura en toda la aplicación a través de IHttpClientFactory.

Comenzar

Empieza a usar Shifter con C# / .NET

Añade los más de 205M de proxies residenciales y de ISP de Shifter a tu stack .NET en menos de 5 minutos. Compatible con HttpClient, RestSharp, Selenium y Playwright.

Prueba Shifter gratisConfiguración en minutos. Cancela cuando quieras.