Ale*_*xei 3 c# https httpwebrequest webbrowser-control
我正在编写一个代码来读取页面并以编程方式下载内容,但它与浏览器的工作方式不同.请注意,我也使用cookie字符串.
我的代码是:
string strUrl = "http:" + "//mgac.webex." + "com";
string cookies_str = "vSeg=post_attendee; s_nr=1321305381566-New; s_lv=1321305381566; s_vnum=1322686800567%26vn%3D1; galaxyb_wl=R2355168776; JSESSIONID=Qlq1TR7Hf09KTsGHr4vv2GnTFF0NGRlLmGyYmMvzY5M29pbZ8yNp!31020270; DetectionBrowserStatus=3|1|32|1|4|2; CK_LanguageID_503319=1; CK_TimeZone_503319=4; CK_RegionID_503319=2; vSeg=post_attendee; s_nr=1321305381566-New; s_lv=1321305381566; s_vnum=1322686800567%26vn%3D1; galaxyb_wl=R2355168776; JSESSIONID=Qlq1TR7Hf09KTsGHr4vv2GnTFF0NGRlLmGyYmMvzY5M29pbZ8yNp!31020270;";
string other_saved_cookies = "screenWidth=1280; CK_CDNHostStatus=akamaicdn.webex.com|1322367753273|1";
string s;
using (WebClient client = new WebClient())
{
client.UseDefaultCredentials = true;
client.Headers.Add(HttpRequestHeader.Cookie, cookies_str);
s = client.DownloadString(strUrl);
}
Run Code Online (Sandbox Code Playgroud)
我得到了这个答案:"无法找到页面......"
当我用Fiddler扫描请求时,我的浏览器收到相同的答案,之后他向同一主机发出了使用SSL的新请求.
如何使用完全相同的请求来接收浏览器等内容
告诉客户的信息在哪里:"需要SSL连接"?
这看起来像你在追求 如何在C#中使用SSL的HTTP GET请求?(违反协议)
但将"http"更改为"https"可能是一个很好的起点!
然后,显然,设置一个ServicePointManager.ServerCertificateValidationCallback,如上面帖子的2个回复中所示.
编辑
加
string ua = "User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:8.0) Gecko/20100101 Firefox/8.0";
Run Code Online (Sandbox Code Playgroud)
然后
client.Headers.Add(HttpRequestHeader.UserAgent, ua);
Run Code Online (Sandbox Code Playgroud)
然后解析重定向结果的Location标头.
归档时间: |
|
查看次数: |
41058 次 |
最近记录: |