我试图下载页面的HTML-String,其中包含DDOS-denier版本:在第一次访问该页面时,您必须等待5秒才能重定向。 URL本身并没有改变,似乎只是在这个URL中构建。 既然我不想要ddos,我可以等待5秒钟,但我无法让它在之后获得HTML。 我的尝试现在看起来像这样(有一些测试的东西):
private async Task<string> GetRawHtmlAsync(HttpClientHandler handler, string threadUrl)
{
try
{
HttpResponseMessage resp = null;
var client = new HttpClient(handler);
resp = await client.GetAsync(threadUrl);
var result = await resp.Content.ReadAsStringAsync();
if (result.Contains("This process is automatic. Your browser will redirect to your requested content shortly."))
{
return await GetRawHtmlAsync(handler, threadUrl);
}
return result;
}
catch (WebException ex)
{
using (var sr = new StreamReader(ex.Response.GetResponseStream()))
{
var tra = ex.Response.ResponseUri;
var tra2 = ex.Response.Headers.Get("Location");
var html = sr.ReadToEnd();
Debug.Write(html);
}
}
return null;
}
HttpClientHandler是通过Factory创建的:
internal HttpClientHandler Create()
{
var handler = new HttpClientHandler()
{
AllowAutoRedirect = true,
CookieContainer = new CookieContainer()
};
return handler;
}
正如你所看到的,我试图修改Cookie,如下所述:HttpClient Not Saving Cookies。我也尝试过这种方法:http://blog.project-sierra.de/archives/2132但是既然没有重定向网址,这也不行。
是否有可能等待5秒钟出来?