繁体   English   中英

如何与代理一起使用?

[英]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.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

希望有帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM