C# 如何使用代理?
我是安格夏普的新手。我在文档中尝试了代理更改,但没有成功。 现在我正在使用它,它与webclient配合得很好,但与AngleSharp不配合 我正在尝试的代码是C# 如何使用代理?,c#,anglesharp,C#,Anglesharp,我是安格夏普的新手。我在文档中尝试了代理更改,但没有成功。 现在我正在使用它,它与webclient配合得很好,但与AngleSharp不配合 我正在尝试的代码是 var handler=new-HttpClientHandler() { Proxy=newWebProxy(String.Format(“{0}:{1}”,“myProxy”,“myPort”),false), 预验证=真, UseDefaultCredentials=false, }; var config=Configurat
var handler=new-HttpClientHandler()
{
Proxy=newWebProxy(String.Format(“{0}:{1}”,“myProxy”,“myPort”),false),
预验证=真,
UseDefaultCredentials=false,
};
var config=Configuration.Default.WithJs().WithCookies().WithDefaultLoader().With(handler);
//创建一个新的上下文,用于评估具有给定配置的网页
var context=BrowsingContext.New(配置);
var document=await context.OpenAsync(“https://api.ipify.org?format=json");
Console.WriteLine(document.DocumentElement.OuterHtml);
我没有收到任何错误,代理不工作,仅此而已。我得到的是我的原始ip而不是代理。
但是使用WebClient,它工作得很好。您只需在AngleSharp的配置中添加一些东西(处理程序,即HttpClientHandler
实例),AngleSharp中的任何东西都不会使用这些东西
首先,AngleSharp的内部HTTP客户端只是一个默认客户端。出于兼容性原因,如果使用HttpWebRequest
,安格夏普将无法与HttpClient
一起提供。这还允许您设置代理
现在如果你想使用你的代码,我建议你使用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
希望有帮助 谢谢Florian,它工作得很好,我相信我会以某种方式帮助你的项目:)