110,536
社区成员
发帖
与我相关
我的任务
分享
// 请先增加引用
using System.Web;
using System.Net;
using System.IO;
using System.Net.Security;
using System.Security;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;
using System.Runtime.InteropServices;
public CookieContainer mycookiecontainer = new CookieContainer();
/// <summary>
/// "GET"
/// </summary>
/// <param name="url">web url</param>
/// <param name="Referer">web referer</param>
/// <returns>return the web access result </returns>
public static string GetAccess(string url, string Referer)
{
try
{
HttpWebRequest res = (HttpWebRequest)WebRequest.Create(url);
res.CookieContainer = mycookiecontainer;
res.Method = "GET";
//res.Proxy = null;
ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
res.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
//res.Headers.Add("Accept-Encoding", "gzip, deflate");
res.Headers.Add("Accept-Language", "zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3");
//res.KeepAlive = false;
res.ProtocolVersion = HttpVersion.Version11;
if (Referer != "")
{
res.Referer = Referer;
}
res.UserAgent = "Mozilla/5.0 (Windows NT 5.1; rv:30.0) Gecko/20100101 Firefox/30.0";
using (HttpWebResponse resp = (HttpWebResponse)res.GetResponse())
{
resp.Cookies = FormMain.mycookiecontainer.GetCookies(res.RequestUri);
using (Stream responseStream = resp.GetResponseStream())
{
//如果网页流压缩了,要加下面一句
//responseStream = new GZipStream(responseStream, CompressionMode.Decompress);
using (StreamReader mySreamReader = new StreamReader(responseStream, Encoding.GetEncoding("utf-8")))//GB2312,utf-8,GBK
{
string responseData = mySreamReader.ReadToEnd();
responseStream.Close();
mySreamReader.Close();
resp.Close();
return responseData;
}
}
}
}
catch (Exception ex)
{
return ex.ToString();
}
}
private static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
{
return true;// Always accept
}
//增加一button,并click事件增加以下代码
private void button1_Click(object sender, EventArgs e)
{
string loginUrl1 = "https://passport.yhd.com/passport/login_input.do";
string result1 = WebTool.GetAccess(loginUrl1, "");
//报错:由于远程方已关闭传输流,身份验证失败
}