Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用代理?_C#_Anglesharp - Fatal编程技术网

C# 如何使用代理?

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

我是安格夏普的新手。我在文档中尝试了代理更改,但没有成功。 现在我正在使用它,它与webclient配合得很好,但与AngleSharp不配合

我正在尝试的代码是

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,它工作得很好,我相信我会以某种方式帮助你的项目:)