请教一个 C# HttpWebRequest session 问题

shengjmx 2011-03-08 04:42:47
public CookieContainer myCookieContainer = null;

private void button4_Click(object sender, EventArgs e)
{
ASCIIEncoding encodingA = new ASCIIEncoding();

//=======DATA==========================================================

ASCIIEncoding encoding = new ASCIIEncoding();
string postData = "org=xxx";
postData += "&user=xxxxx";
postData += "&pwd=xxx";

byte[] data = encoding.GetBytes(postData);

//=======POST================================================================================
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create("xxx");

myRequest.Method = "POST";
myRequest.ContentType = "application/x-www-form-urlencoded";
myRequest.ContentLength = data.Length;
myRequest.CookieContainer = myCookieContainer;
Stream newStream = myRequest.GetRequestStream();
newStream.Write(data, 0, data.Length);
newStream.Close();


HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.Default);
textBox1.Text = reader.ReadToEnd();

}
private void GetPageData(string URL)
{
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(URL);
myRequest.Method = "GET";
myRequest.CookieContainer = myCookieContainer;

HttpWebResponse myResponseA = (HttpWebResponse)myRequest.GetResponse();
StreamReader readerA = new StreamReader(myResponseA.GetResponseStream(), Encoding.Default);
textBox1.Text = readerA.ReadToEnd();
}


按下按钮后返回的HTTP是登录信息,但是执行GetPageData返回的HTTP提示超时。是不是CookieContainer用的不对。
...全文
219 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
shengjmx 2011-03-08
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xiao_p 的回复:]

cookiecontainer默认用IE的就好了

光看代码实在看不出来问题是什么
建议楼主好好看看你按了按钮之后做的事情是什么,也许能有答案

GetPageData这个函数好像就没有地方调用吧?。。。至少在楼主的代码里没有。。。
[/Quote]

之前听说这个是 HttpWebRequest 的一个BUG,会把返回的path搞错,服务器基本上不会出问题。
本来想对获取的cookie的path进行重构,但是水平有限。谢谢朋友。
kid_wang 2011-03-08
  • 打赏
  • 举报
回复
按下按钮后返回的HTTP是登录信息,但是执行GetPageData返回的HTTP提示超时——不是那个问题,是你IIS的文件夹权限的问题。也就是你服务器部署的文件夹的权限。你要改成可读写,并且加上everyone用户的读写权限,就可以了。
xiao_p 2011-03-08
  • 打赏
  • 举报
回复
cookiecontainer默认用IE的就好了

光看代码实在看不出来问题是什么
建议楼主好好看看你按了按钮之后做的事情是什么,也许能有答案

GetPageData这个函数好像就没有地方调用吧?。。。至少在楼主的代码里没有。。。
shengjmx 2011-03-08
  • 打赏
  • 举报
回复
多谢楼上的兄弟,这问题困扰了好几天,希望有朋友能帮忙~

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧