C#模擬登入總結
/// 登入
///
///
///
///
public static string Login(String url, String paramList)
{
HttpWebResponse res = null;
string strResult = "";
try
{
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
req.AllowAutoRedirect = false;
CookieContainer cookieCon = new CookieContainer();
req.CookieContainer = cookieCon;
StringBuilder UrlEncoded = new StringBuilder();
Char[] reserved = { '?', '=', '&' };
byte[] SomeBytes = null;
if (paramList != null)
{
int i = 0, j;
while (i < paramList.Length)
{
j = paramList.IndexOfAny(reserved, i);
if (j == -1)
{
UrlEncoded.Append(HttpUtility.UrlEncode(paramList.Substring(i, paramList.Length - i)));
break;
}
UrlEncoded.Append(HttpUtility.UrlEncode(paramList.Substring(i, j - i)));
UrlEncoded.Append(paramList.Substring(j, 1));
i = j + 1;
}
SomeBytes = Encoding.UTF8.GetBytes(UrlEncoded.ToString());
req.ContentLength = SomeBytes.Length;
Stream newStream = req.GetRequestStream();
newStream.Write(SomeBytes, 0, SomeBytes.Length);
newStream.Close();
}
else
{
req.ContentLength = 0;
}
res = (HttpWebResponse)req.GetResponse();
cookieheader = req.CookieContainer.GetCookieHeader(new Uri(url));
Stream ReceiveStream = res.GetResponseStream();
Encoding encode = System.Text.Encoding.GetEncoding("GBK");
StreamReader sr = new StreamReader(ReceiveStream, encode);
Char[] read = new Char[256];
int count = sr.Read(read, 0, 256);
while (count > 0)
{
String str = new String(read, 0, count);
strResult += str;
count = sr.Read(read, 0, 256);
}
}
catch (Exception e)
{
strResult = e.ToString();
}
finally
{
if (res != null)
{
res.Close();
}
}
return strResult;
}
/// 獲取頁面HTML
///
///
///
///
public static string getPage(String url, String paramList)
{
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.Headers["If-None-Match"] = "36d0ed736e88c71:d9f";
req.Referer = "http://website/login.do";
CookieContainer cookieCon = new CookieContainer();
req.CookieContainer = cookieCon;
req.CookieContainer.SetCookies(new Uri(url), cookieheader);
HttpWebResponse res = (HttpWebResponse)req.GetResponse();
StreamReader sr = new StreamReader(res.GetResponseStream(),Encoding.Default);
string strResult = sr.ReadToEnd();
sr.Close();
return strResult;
}呼叫:
///
///
///
///
public static string Login(String url, String paramList)
{
HttpWebResponse res = null;
string strResult = "";
try
{
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
req.AllowAutoRedirect = false;
CookieContainer cookieCon = new CookieContainer();
req.CookieContainer = cookieCon;
StringBuilder UrlEncoded = new StringBuilder();
Char[] reserved = { '?', '=', '&' };
byte[] SomeBytes = null;
if (paramList != null)
{
int i = 0, j;
while (i < paramList.Length)
{
j = paramList.IndexOfAny(reserved, i);
if (j == -1)
{
UrlEncoded.Append(HttpUtility.UrlEncode(paramList.Substring(i, paramList.Length - i)));
break;
}
UrlEncoded.Append(HttpUtility.UrlEncode(paramList.Substring(i, j - i)));
UrlEncoded.Append(paramList.Substring(j, 1));
i = j + 1;
}
SomeBytes = Encoding.UTF8.GetBytes(UrlEncoded.ToString());
req.ContentLength = SomeBytes.Length;
Stream newStream = req.GetRequestStream();
newStream.Write(SomeBytes, 0, SomeBytes.Length);
newStream.Close();
}
else
{
req.ContentLength = 0;
}
res = (HttpWebResponse)req.GetResponse();
cookieheader = req.CookieContainer.GetCookieHeader(new Uri(url));
Stream ReceiveStream = res.GetResponseStream();
Encoding encode = System.Text.Encoding.GetEncoding("GBK");
StreamReader sr = new StreamReader(ReceiveStream, encode);
Char[] read = new Char[256];
int count = sr.Read(read, 0, 256);
while (count > 0)
{
String str = new String(read, 0, count);
strResult += str;
count = sr.Read(read, 0, 256);
}
}
catch (Exception e)
{
strResult = e.ToString();
}
finally
{
if (res != null)
{
res.Close();
}
}
return strResult;
}
///
///
///
///
///
public static string getPage(String url, String paramList)
{
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.Headers["If-None-Match"] = "36d0ed736e88c71:d9f";
req.Referer = "http://website/login.do";
CookieContainer cookieCon = new CookieContainer();
req.CookieContainer = cookieCon;
req.CookieContainer.SetCookies(new Uri(url), cookieheader);
HttpWebResponse res = (HttpWebResponse)req.GetResponse();
StreamReader sr = new StreamReader(res.GetResponseStream(),Encoding.Default);
string strResult = sr.ReadToEnd();
sr.Close();
return strResult;
}呼叫:
string postData = "userName=admin&password=pass&area=2006&Submit=%B5%C7+%C2%BC";
string strLogin, strResult;
strLogin = Login("http://website/login.do", postData);
strResult = getPage("http://website/tohjtree.do", "");
//輸出
this.webBrowser1.Document.Write(strResult);
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-662140/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python 爬蟲模擬登入方法彙總Python爬蟲
- Python-模擬登入Python
- selenium模擬登入12306
- 利用Python模擬GitHub登入PythonGithub
- 實戰:Mailivery 模擬登入AI
- 【Java】——模擬登入實現Java
- 20241011 模擬賽總結
- 20241012 模擬賽總結
- 模擬賽總結(二)
- 10.2模擬賽總結
- 20240923 模擬賽總結
- 20241003 模擬賽總結
- 模擬賽總結補
- 模擬賽總結(三)
- 2024.09.17模擬賽總結
- 2024.07.14模擬賽總結
- 暑假模擬賽總結
- 2024.07.12模擬賽總結
- 7.13模擬賽總結
- 11.2模擬賽總結
- 11.8模擬賽總結
- 202206007 模擬賽 總結
- 模擬登入之web監控Web
- 10.3 - AM - 模擬賽 總結
- golang 模擬瀏覽器登入操作Golang瀏覽器
- QQ模擬登入實現後篇
- 使用 mock 模擬登入介面資料Mock
- 實戰模擬│JWT 登入認證JWT
- 2020.10.31【NOIP提高A組】模擬總結
- 爬蟲模擬登入—OAUTH的詳解爬蟲OAuth
- 搜狗站長工具【post請求模擬登入】程式碼分享總結【批量提交搜狗收錄網址】
- 2024 10.5&10.6 模擬賽總結
- 10月份模擬賽總結
- NOIP2024模擬賽7 總結
- 模擬弱網測試方法總結
- 登入介面(C#)C#
- 為爬蟲獲取登入cookies: 使用Charles和requests模擬微博登入爬蟲Cookie
- 2020.10.07【普及組】模擬賽C組 總結
- 8.30 上午 becoder 模擬賽總結 & 題解