我试图从CloudFlare托管的网站下载网页数据。它使用HTTPS并在进入页面之前获取连接的ID。
我试图在WebRequest和WebResponse中获取ID,但我收到以下错误:
未处理的类型' System.Net.WebException'发生在System.dll中 附加信息:远程服务器返回错误:(503)服务器不可用。
我试图向Fiddler提出请求,这是回复:
HTTP/1.1 503 Service Temporarily Unavailable
Date: Tue, 12 May 2015 13:38:17 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Set-Cookie: __cfduid=d57a7d982035dad7ebafe63444d125e451431437897; expires=Wed, 11-May-16 13:38:17 GMT; path=/; domain=.hornystress.me; HttpOnly
X-Frame-Options: SAMEORIGIN
Refresh: 8;URL=/cdn-cgi/l/chk_jschl?pass=1431437901.815-Ym1g5qTodK
Cache-Control: no-cache
Server: cloudflare-nginx
CF-RAY: 1e5685ed559606ee-LHR
这是我的代码:
public static string GetCookie(string link)
{
WebRequest request = WebRequest.Create("https://hornystress.me");
request.Proxy = WebProxy.GetDefaultProxy();
request.Timeout *= 100;
WebResponse response = request.GetResponse();
return response.Headers.Get("Set-Cookie");
}
答案 0 :(得分:1)
无论你做什么,都可能看起来像是对网站的攻击&它正在触发安全功能。您可能希望要求网站所有者将正在进行呼叫的IP列入白名单。
答案 1 :(得分:0)
它的Cloudflare安全性,旨在阻止您尝试做的事情。您无法使用脚本访问该网站。
答案 2 :(得分:0)
问题是网站正常响应是Error code 503
我想要的cookie ...所以编译器抛出WebException
错误;我应该抓住...
public static string GetCookie()
{
WebRequest request = WebRequest.Create("https://hornystress.me");
request.Proxy = WebProxy.GetDefaultProxy();
request.Timeout *= 100;
string cookie;
WebResponse response;
try
{
response = request.GetResponse();
cookie = response.Headers.Get("Set-Cookie");
}
catch (WebException we)
{
cookie=we.Response.Headers.Get("Set-Cookie");
}
return cookie;
}