public string fileDown(...){//web页面访问函数
.......
HttpWebRequest myRequest=(HttpWebRequest)WebRequest.Create(new Uri(url));
myRequest.CookieContainer=createCookie(strCookie,"http://www.....");
//strCookie来源于webBrowser.Document.Cookie
........
}public CookieContainer createCookie(string strCookie, string webUrlMainWord)
{//cookie字符串转换成CookieContainer
CookieContainer cookie=new CookieContainer();
string[] sp = strCookie.Split(";".ToCharArray());
for (int k = 0; k < sp.Length; k++)
{
int ik = sp[k].IndexOf("=");
string name="";
string value="";
if (ik == -1) name = sp[k].Trim();
else { name = sp[k].Substring(0, ik).Trim(); value = sp[k].Substring(ik + 1).Trim(); }
Cookie ck = new Cookie(name, value);
ck.Domain = webUrlMainWord;
cookie.Add(ck);
}
return cookie;
}在网页测试页面中,对浏览器的Cookie进行直接输出:<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="gb2312" %>
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
string text = "";
for (int k = 0; k < Request.Cookies.Count; k++)
{
string str = Request.Cookies[k].Name.ToString();
string value = Request.Cookies[k].Value.ToString();
text += "\r\n<br>" + str + "=" + value;
}
Response.Write(text);
}
</script>
测试反馈的结果是输入的cookie字符串strCookie没起作用,网络上搜索了很多,没找到问题。是不是还需要设置cookie标头,但在webBrowser.Document中似乎也没有标头信息啊。谢谢!希望高手能直接指出问题。
.......
HttpWebRequest myRequest=(HttpWebRequest)WebRequest.Create(new Uri(url));
myRequest.CookieContainer=createCookie(strCookie,"http://www.....");
//strCookie来源于webBrowser.Document.Cookie
........
}public CookieContainer createCookie(string strCookie, string webUrlMainWord)
{//cookie字符串转换成CookieContainer
CookieContainer cookie=new CookieContainer();
string[] sp = strCookie.Split(";".ToCharArray());
for (int k = 0; k < sp.Length; k++)
{
int ik = sp[k].IndexOf("=");
string name="";
string value="";
if (ik == -1) name = sp[k].Trim();
else { name = sp[k].Substring(0, ik).Trim(); value = sp[k].Substring(ik + 1).Trim(); }
Cookie ck = new Cookie(name, value);
ck.Domain = webUrlMainWord;
cookie.Add(ck);
}
return cookie;
}在网页测试页面中,对浏览器的Cookie进行直接输出:<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="gb2312" %>
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
string text = "";
for (int k = 0; k < Request.Cookies.Count; k++)
{
string str = Request.Cookies[k].Name.ToString();
string value = Request.Cookies[k].Value.ToString();
text += "\r\n<br>" + str + "=" + value;
}
Response.Write(text);
}
</script>
测试反馈的结果是输入的cookie字符串strCookie没起作用,网络上搜索了很多,没找到问题。是不是还需要设置cookie标头,但在webBrowser.Document中似乎也没有标头信息啊。谢谢!希望高手能直接指出问题。
myRequest.ContentType = "text/html";
改为
application/x-www-form-urlencoded
试试