ProxySharpJ 1.0.8
dotnet add package ProxySharpJ --version 1.0.8
NuGet\Install-Package ProxySharpJ -Version 1.0.8
<PackageReference Include="ProxySharpJ" Version="1.0.8" />
<PackageVersion Include="ProxySharpJ" Version="1.0.8" />
<PackageReference Include="ProxySharpJ" />
paket add ProxySharpJ --version 1.0.8
#r "nuget: ProxySharpJ, 1.0.8"
#:package ProxySharpJ@1.0.8
#addin nuget:?package=ProxySharpJ&version=1.0.8
#tool nuget:?package=ProxySharpJ&version=1.0.8
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");
// var proxyList = new ProxyList(proxies);
// Or
var proxyList = new ProxyList {
new ProxyInfo
{
Host = "1.1.1.1",
Port = 8080
},
new ProxyInfo
{
Host = "2.2.2.2",
Port = 8081,
UserName = "user",
Password = "password"
},
};
// 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();
Details
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 | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. 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. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.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.
Bugfix.