我如何使用代理?
How can i use with proxy?
我是 anglesharp 的新手。我在文档中尝试了代理更改,但没有用。
现在我正在使用它,它适用于 webclient,但不适用于 AngleSharp。
我正在尝试的代码是 ;
var handler = new HttpClientHandler()
{
Proxy = new WebProxy(String.Format("{0}:{1}", "myProxy", "myPort"), false),
PreAuthenticate = true,
UseDefaultCredentials = false,
};
var config = Configuration.Default.WithJs().WithCookies().WithDefaultLoader().With(handler);
//Create a new context for evaluating webpages with the given config
var context = BrowsingContext.New(config);
var document = await context.OpenAsync("https://api.ipify.org?format=json");
Console.WriteLine(document.DocumentElement.OuterHtml);
我没有收到任何错误,代理不工作就是这样。我得到的是我的原始 ip 而不是代理。
但是使用 WebClient 效果很好。
您只需在 AngleSharp 的配置中添加一些东西(handler
,即 HttpClientHandler
实例)- AngleSharp 中的任何东西都不会使用的东西。
首先,AngleSharp 的内部 HTTP 客户端只是一个默认客户端。出于兼容性原因,如果使用 HttpWebRequest
,则 AngleSharp 无法使用 HttpClient
。这也允许您设置代理。
现在,如果您想使用您的代码,我建议您使用 AngleSharp.Io (https://www.nuget.org/packages/AngleSharp.Io or https://github.com/AngleSharp/AngleSharp.Io)。它非常简单直接:
var handler = new HttpClientHandler
{
Proxy = new WebProxy(String.Format("{0}:{1}", "myProxy", "myPort"), false),
PreAuthenticate = true,
UseDefaultCredentials = false,
};
var config = Configuration.Default
.WithRequesters(handler)
.WithDefaultLoader()
.WithJs()
.WithTemporaryCookies()
.WithDefaultLoader();
var context = BrowsingContext.New(config);
var document = await context.OpenAsync("https://api.ipify.org?format=json");
Console.WriteLine(document.DocumentElement.OuterHtml)
仅添加了 .WithRequesters(handler)
。这会添加来自 AngleSharp.Io 的请求者。通过提供 handler
我们可以配置 HttpClient
.
希望对您有所帮助!
我是 anglesharp 的新手。我在文档中尝试了代理更改,但没有用。 现在我正在使用它,它适用于 webclient,但不适用于 AngleSharp。
我正在尝试的代码是 ;
var handler = new HttpClientHandler()
{
Proxy = new WebProxy(String.Format("{0}:{1}", "myProxy", "myPort"), false),
PreAuthenticate = true,
UseDefaultCredentials = false,
};
var config = Configuration.Default.WithJs().WithCookies().WithDefaultLoader().With(handler);
//Create a new context for evaluating webpages with the given config
var context = BrowsingContext.New(config);
var document = await context.OpenAsync("https://api.ipify.org?format=json");
Console.WriteLine(document.DocumentElement.OuterHtml);
我没有收到任何错误,代理不工作就是这样。我得到的是我的原始 ip 而不是代理。 但是使用 WebClient 效果很好。
您只需在 AngleSharp 的配置中添加一些东西(handler
,即 HttpClientHandler
实例)- AngleSharp 中的任何东西都不会使用的东西。
首先,AngleSharp 的内部 HTTP 客户端只是一个默认客户端。出于兼容性原因,如果使用 HttpWebRequest
,则 AngleSharp 无法使用 HttpClient
。这也允许您设置代理。
现在,如果您想使用您的代码,我建议您使用 AngleSharp.Io (https://www.nuget.org/packages/AngleSharp.Io or https://github.com/AngleSharp/AngleSharp.Io)。它非常简单直接:
var handler = new HttpClientHandler
{
Proxy = new WebProxy(String.Format("{0}:{1}", "myProxy", "myPort"), false),
PreAuthenticate = true,
UseDefaultCredentials = false,
};
var config = Configuration.Default
.WithRequesters(handler)
.WithDefaultLoader()
.WithJs()
.WithTemporaryCookies()
.WithDefaultLoader();
var context = BrowsingContext.New(config);
var document = await context.OpenAsync("https://api.ipify.org?format=json");
Console.WriteLine(document.DocumentElement.OuterHtml)
仅添加了 .WithRequesters(handler)
。这会添加来自 AngleSharp.Io 的请求者。通过提供 handler
我们可以配置 HttpClient
.
希望对您有所帮助!