gpt4 book ai didi

c# - Agility Pack - 为多个 HTTP 请求维护 'connection'

转载 作者:太空宇宙 更新时间:2023-11-03 14:44:30 25 4
gpt4 key购买 nike

我有一个系统需要将多次调用 API 作为一个“作业”。我通过主机名连接到代理来执行工作,因此它不会给我分配一个我可以看到的 IP 地址。我基本上交出了任务。

目前我正在使用 HtmlWeb 像这样调用我的 URL 列表:

var webProxy = new WebProxy(Address: [MyProxyHost]);

var web = new HtmlWeb();
web.UseCookies = false;
web.UserAgent = "[MyUserAgent]";
var htmlDoc = web.Load("[URL]","GET", webProxy, webCreds);
//...do stuff with results...

问题:就目前而言,我发出的每个请求都会轮换代理(因为使用代理主机的每个“调用”都会随机更改他们这边的 IP - 我对此无法控制)。

我想做的是通过多次调用重新使用 http 请求/连接(我很感激我可能无法为此使用 HtmlWeb)。

所以我基本上会说:

  • 创建 HTTP 请求对象(带代理主机)
  • 打开/初始化
  • 提出请求 1
  • ...
  • 提出请求N
  • 关闭并处置

这可能吗?

最佳答案

好的,我已经准备好以下内容,到目前为止似乎没问题:

var webProxy = new WebProxy()
{
Address = new Uri([ServerHost] + ":" + [ServerPort]),
BypassProxyOnLocal = false,
UseDefaultCredentials = false,
Credentials = new NetworkCredential(
userName: [Username],
password: [Password])
};

var httpClientHandler = new HttpClientHandler()
{
Proxy = webProxy,
};

var _httpClient = new HttpClient(httpClientHandler);
...
var response = await _httpClient.GetAsync([Url]);
var pageContents = await response.Content.ReadAsStringAsync();

var htmlDoc.LoadHtml(pageContents);
...

这会使用代理向每个 URL 发出请求,并将返回的页面转换为 HtmlDocument,这样我就可以执行我需要的 AgilityPack 操作。

关于c# - Agility Pack - 为多个 HTTP 请求维护 'connection',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55139768/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com