【问题标题】:How can i use with proxy?我如何使用代理?
【发布时间】:2020-01-04 11:08:07
【问题描述】:

我是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 效果很好。

【问题讨论】:

    标签: c# anglesharp


    【解决方案1】:

    您只需在 AngleSharp 的配置中添加一些东西(handler,即 HttpClientHandler 实例) - AngleSharp 中的任何东西都不会使用的东西。

    首先,AngleSharp 的内部 HTTP 客户端只是一个默认客户端。出于兼容性原因,如果使用 HttpWebRequest,AngleSharp 不能与 HttpClient 一起发布。这也允许您设置代理。

    现在,如果您想使用您的代码,我建议您使用 AngleSharp.Io(https://www.nuget.org/packages/AngleSharp.Iohttps://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

    希望有帮助!

    【讨论】:

    • 感谢弗洛里安,它工作得很好,我相信我会以某种方式帮助你的项目:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-24
    • 1970-01-01
    • 1970-01-01
    • 2021-04-27
    • 2018-01-06
    • 1970-01-01
    相关资源
    最近更新 更多