통합

Shifter와 함께 사용 C# / .NET

Shifter의 레지덴셜 및 ISP 프록시를 HttpClient, RestSharp, Flurl, Selenium, Playwright 등 모든 .NET 프로젝트에 비즈니스 로직을 건드리지 않고 연결하세요.

빠른 시작

설치

dotnet add package System.Net.Http

기본 사용법

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

기능

HttpClient, RestSharp, Flurl, HttpWebRequest 및 WebProxy를 사용하는 모든 .NET HTTP 클라이언트에 대한 즉시 지원
기본값은 요청별 로테이션이며, 스티키 세션에는 `sid`를, N초 동안의 시간제 고정에는 `ttl-N`을 사용합니다
Selenium WebDriver 및 .NET용 Playwright를 통한 헤드리스 브라우저 지원
동일한 게이트웨이 엔드포인트에서 지원되는 HTTP, HTTPS, SOCKS5 프로토콜
사용자 이름 매개변수를 통한 195개국 이상 Geo 타겟팅 - 추가 패키지 불필요
NET 6, .NET 7, .NET 8, .NET Framework 4.7.2+와 호환 - C#, F#, VB.NET에서 사용 가능

예시

Sticky Session을 사용하는 HttpClient

표준 .NET HTTP 클라이언트입니다. 한 번 구성한 후 IHttpClientFactory나 싱글톤을 통해 앱 전체에서 공유하면, 동일한 `sid`가 일치하는 모든 요청에서 같은 레지덴셜 IP가 재사용됩니다.

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는 HttpClient를 플루언트 빌더, 자동 JSON 역직렬화, 재시도 정책으로 감쌉니다. 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)

JavaScript로 렌더링되는 대상을 위해 Shifter를 통해 실제 Chrome / Edge / Firefox 인스턴스를 구동하세요. 헤드리스 인증을 위해 Shifter의 IP 화이트리스트와 함께 사용하세요.

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

Microsoft Playwright는 C#에서 Chromium, Firefox, WebKit을 구동합니다. 실행 옵션에서 프록시를 설정하세요. 자격 증명은 인라인으로 처리되며 확장 프로그램이 필요 없습니다.

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);
자주 묻는 질문

자주 묻는 질문

C# / .NET와 Shifter 사용에 관한 일반적인 질문.

`http://p.shifter.io:443`을 가리키는 WebProxy를 생성하고, Credentials를 Shifter 사용자 이름과 비밀번호가 포함된 NetworkCredential로 설정하세요. 이를 UseProxy = true로 설정한 HttpClientHandler에 전달하고, 해당 핸들러를 새로운 HttpClient에 공급하세요. 동일한 클라이언트는 IHttpClientFactory를 통해 앱 전체에서 안전하게 공유할 수 있습니다.

RestClientOptions의 Proxy 속성을 NetworkCredential이 포함된 WebProxy로 설정하세요. RestSharp는 내부 HttpClient를 래핑하므로 RestClient가 만드는 모든 요청은 Shifter를 통해 라우팅됩니다. RestSharp 110 이상과 호환됩니다.

예. Playwright의 BrowserTypeLaunchOptions에서 Proxy 필드에 Server, Username, Password를 설정하세요. 동일한 설정이 Chromium, Firefox, WebKit에서 모두 작동합니다. 확장 프로그램이 필요 없으며, 자격 증명은 인라인으로 전달됩니다.

프록시 사용자 이름에 세션 ID를 추가하세요(예: `customer-USERNAME-country-us-sid-123ABC`). 동일한 sid로 인증하는 모든 .NET 요청은 동일한 레지덴셜 IP를 재사용합니다. `ttl-N`을 추가하면 해당 IP를 최대 N초 동안 고정할 수 있습니다.

예. Program.cs에서 IHttpClientFactory를 통해 이름이 지정된 HttpClient를 등록하고, 해당 핸들러가 Shifter WebProxy를 사용하도록 구성한 다음, 필요한 곳 어디서든 IHttpClientFactory.CreateClient("shifter")를 주입하세요. MVC, Minimal API, Blazor에서 모두 작동합니다.

NuGet 패키지가 필요하지 않습니다. Shifter는 일반 HTTP / SOCKS5를 사용하므로, 기존 HttpClient를 `p.shifter.io:443`으로 지정하면 됩니다. 이렇게 하면 프로젝트 파일이 간결해지고 .NET Framework, .NET Core, .NET 5+ 전반에서 작동합니다.

시작하기

Shifter 사용을 함께 시작하기 C# / .NET

5분 이내에 Shifter의 205M+ 레지덴셜 및 ISP 프록시를 .NET 스택에 추가하세요. HttpClient, RestSharp, Selenium, Playwright와 함께 작동합니다.

Shifter 무료로 체험하기몇 분 만에 설정. 언제든지 취소 가능.