ProxySharpJ 1.0.2
See the version list below for details.
dotnet add package ProxySharpJ --version 1.0.2
NuGet\Install-Package ProxySharpJ -Version 1.0.2
<PackageReference Include="ProxySharpJ" Version="1.0.2" />
<PackageVersion Include="ProxySharpJ" Version="1.0.2" />
<PackageReference Include="ProxySharpJ" />
paket add ProxySharpJ --version 1.0.2
#r "nuget: ProxySharpJ, 1.0.2"
#:package ProxySharpJ@1.0.2
#addin nuget:?package=ProxySharpJ&version=1.0.2
#tool nuget:?package=ProxySharpJ&version=1.0.2
ProxySharp
Provides functionality for executing requests via proxy servers. The list of proxy servers and the selection algorithm is easily expanded by implementing the necessary interfaces. If the proxy server does not respond or the response does not pass user validation, the request is executed through the next available proxy server.
Usage expamle
// Load if needed
// var proxies = ProxyStorage.Load("proxies.xml");
// Or
var proxies = new List<ProxyInfo> {
new ProxyInfo
{
Host = "1.1.1.1",
Port = 8080
},
new ProxyInfo
{
Host = "2.2.2.2",
Port = 8081,
UserName = "user",
Password = "password"
},
};
var proxyList = new ProxyList(proxies);
// Save if needed
// ProxyStorage.Save("proxies.xml", proxyList);
var selector = new PrioritizeBestRatingProxySelector(proxyList);
var manager = new ProxyManager(selector);
manager
.Configure(client =>
client.Timeout = TimeSpan.FromSeconds(60))
.UseValidator(async response =>
(await response.Content.ReadAsStringAsync())
.Contains("marker of successful"));
var result = await manager.RequestAsync(async client => await client.GetAsync("google.com"));
var pageContent = await result.Content.ReadAsStringAsync();
Console.WriteLine(pageContent);
For manual change proxy between requests use:
manager.ChangeProxy();
You can implement a custom proxy provider by implementing the interface IProxyProvider
. For example, your provider can parse a website with a free proxy list.
Every ProxyInfo
has Rating
and LastException
properties. You can change the algorithm that chooses the first and next proxies by implementing the interface IProxySelector
.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net6.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Added implementation of IEnumerable<ProxyInfo> interface to ProxyList class. Added README file.