c#模拟请求获取与设置cookies
来源:互联网 发布:it行业工资 编辑:程序博客网 时间:2024/06/06 01:03
[DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)]
public static extern bool InternetSetCookie(string lpszUrlName, string lbszCookieName, string lpszCookieData);
获取cookies
[DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)]
public static extern bool InternetGetCookie(string url, string name, StringBuilder data, ref int dataSize);
protected void OPenIEWithUrl(string url)
{
CookieCollection ccl = Cookies.GetCookies(new Uri(url));
if (ccl.Count > 0)
{
string name = ccl[0].Name;
string value = ccl[0].Value + ";expires=Sun,22-Feb-2099 00:00:00 GMT";
InternetSetCookie(url, name, value);
System.Diagnostics.Process.Start("IEXPLORE.EXE", url);// 调用ie打开网页
}
}
/// <summary>
/// 模拟登录
/// </summary>
protected void Login()
{
string loginUrl = "http://hz.fenxiao.uwuxian.com/quickLogin.htm";
Dictionary<string, string> dic = new Dictionary<string, string>();
dic.Add("user.username", "18814887500");
dic.Add("user.password", "123456");
string postData = BuildParmsString(dic);
PostGetData(postData, loginUrl);
OPenIEWithUrl("http://hz.fenxiao.uwuxian.com/");
}
public string PostGetData(string postData, string url)
{
try
{
byte[] data = Encoding.UTF8.GetBytes(postData);
Uri uRI = new Uri(url);
HttpWebRequest req = WebRequest.Create(url) as HttpWebRequest;
req.Method = "POST";
req.KeepAlive = true;
req.ContentType = "application/x-www-form-urlencoded";
req.ContentLength = data.Length;
req.AllowAutoRedirect = true;
req.CookieContainer = Cookies;
using (Stream outStream = req.GetRequestStream())
{
outStream.Write(data, 0, data.Length);
outStream.Close();
}
HttpWebResponse res = req.GetResponse() as HttpWebResponse;
string htmlResult = string.Empty;
using (StreamReader sr = new StreamReader(res.GetResponseStream(), Encoding.UTF8))
{
htmlResult = sr.ReadToEnd();
}
return htmlResult;
}
catch (Exception ex)
{
return "网络错误:" + ex.Message.ToString();
}
}
private string BuildParmsString(Dictionary<string, string> dicParm)
{
StringBuilder sb = new StringBuilder();
foreach (string key in dicParm.Keys)
{
if (sb.Length > 0)
sb.Append("&");
//sb.AppendFormat("{0}={1}", key, System.Web.HttpUtility.UrlEncode(dicParm[key]));
sb.AppendFormat("{0}={1}", key, dicParm[key]);
}
return sb.ToString();
}
- c#模拟请求获取与设置cookies
- Django 设置cookies与获取cookies.
- Django 设置cookies与获取cookies.
- VC++设置与获取cookies
- VC++设置与获取cookies
- js设置/获取cookies
- c# webbrowser获取cookies
- C#设置Cookies
- C#设置Cookies
- 通过模拟浏览器获取cookies
- VC++设置与获取cookies的几种方法
- VC++设置与获取cookies的几种方法
- VC++设置与获取cookies的几种方法
- C# 模拟发送Http请求获取请求页面
- 设置,获取和删除Cookies
- Sina微博模拟登录获取Cookies
- C#模拟post请求
- c#模拟http请求
- C/C++字节对齐
- zzuli OJ 1016: 银行利率
- C语言中最常用标准库函数
- Android Studio 错误 com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536
- Hibernate关联之 一对多连接表双向关联
- c#模拟请求获取与设置cookies
- String,StringBuffer与StringBuilder的区别??
- mongo的登录认证与角色管理。
- c++中冒号(:)和双冒号(::)的用法
- Valid Anagram 比较两个字符串是否相同
- Git常用命令集合速查表
- iOS开发网络篇—数据缓存
- 数据库-数据模型(分类、三要素、概念)
- 利用港大图书馆搜索文献