gpt4 book ai didi

c# - 为什么 HttpClient 不允许自动重定向?

转载 作者:行者123 更新时间:2023-12-05 06:53:20 25 4
gpt4 key购买 nike

我正在尝试使用不同的用户代理抓取某些域。我的爬虫工作正常,当域没有 SSL 证书并且不安全时会出现问题,在这种情况下,我不会收到任何 HttpClient 的响应。为了跳过这一点,我使用了 HttpHandler 并自己设置了证书。有了这个解决方案,我得到了所有这些域的 301,感觉我的 AllowAutoRedirect 是错误的,但事实并非如此。我尝试将 MaxAutomaticRedirections 分配给 5,但效果不佳。

这是我的代码:

public Task<int> Crawl(string userAgent, string url)
{
var handler = new HttpClientHandler();
handler.ClientCertificateOptions = ClientCertificateOption.Manual;
handler.ServerCertificateCustomValidationCallback =
(httpRequestMessage, cert, cetChain, policyErrors) =>
{
return true;
};

var httpClient = new HttpClient(handler);

httpClient.DefaultRequestHeaders.Add("User-Agent", userAgent);


var statusCode = (int)(await httpClient.SendAsync(new HttpRequestMessage(HttpMethod.Get, URL))).StatusCode;

return statusCode;
}

最佳答案

我尝试抓取的域没有任何 SSL 证书,并且 HttpClient 被重定向到 HTTP 版本。我的猜测是 HttpClient 不知道它被重定向到哪里,所以没有继续。

我的问题通过抓取 HTTP 版本的域得到解决,例如:http://example.com

关于c# - 为什么 HttpClient 不允许自动重定向?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65796315/

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