有一个管理后台是用到https,我用httpWebRequest登陆成功后,然后再操作后台的其他菜单,其他菜单又是http的,我把HTTPS的COOKIE延用到了http上,但我去操作一个最简单的搜索都不能成功,经常报数据库操作异常或字段为空,实际这个http的菜单的form只有一个字段,为什么会这样子呢。请高手指点一下。急呀!

解决方案 »

  1.   

    我的代码:
    HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create("https://www.ss.com/dd.php");
    httpWebRequest.Method = "POST";
    httpWebRequest.ContentLength = stringPost.Length; 
    httpWebRequest.ContentType = "application/x-www-form-urlencoded";
    StreamWriter streamWriter = null;
    streamWriter = new StreamWriter(httpWebRequest.GetRequestStream());
    streamWriter.Write(stringPost);
    streamWriter.Close();
    HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();
    string str = httpWebResponse.Headers["Set-Cookie"];
    string cookies = str.Split(';')[0];
    textBox1.Text = cookies;
    using (StreamReader streamReader = new StreamReader(httpWebResponse.GetResponseStream(),Encoding.GetEncoding("gb2312")))
    {
    stringResult = streamReader.ReadToEnd();
    streamReader.Close();
    } HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.ss.com/sd.php"); 
    request.Headers.Add("Cookie", cookies);
    request.Method = "POST";
    request.ContentLength = stringPost2.Length; 
    request.ContentType = "application/x-www-form-urlencoded";
    StreamWriter streamWriter2 = null;
    streamWriter2 = new StreamWriter(request.GetRequestStream());
    streamWriter2.Write(stringPost2);
    streamWriter2.Close();
    HttpWebResponse httpWebResponse2 = (HttpWebResponse)request.GetResponse();
    using (StreamReader streamReader2 = new StreamReader(httpWebResponse2.GetResponseStream(),Encoding.GetEncoding("gb2312")))
    {
        stringResult2 = streamReader2.ReadToEnd();
    streamReader2.Close();
    }
    textBox1.Text = stringResult2;
      

  2.   

    我用工具查看了我程序提交的POST包,和通过IE提交的POST包,结果发现包中没有什么区别,应该有的我都有了,当然COOKIE的值是不一样的。真不明白我哪儿出错了!
      

  3.   

    就是COOKIE的值用户信息都在里面
      
    *****************************************************************************
    欢迎使用CSDN论坛阅读器 : CSDN Reader(附全部源代码) 
    http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
      

  4.   

    feiyun0112,如果COOKIE的值有问题,那为什么用户登陆后还能操作下一步,只不过是提交POST后网站的后台说数据库操作异常。
      

  5.   

    现在的情况是这样了:
    IE登陆后我用httpWatch取得COOKIE,然后在我的软件中用上这个COOKIE,结果POST就能成功,甚至连LOGIN这步都可以省略,真是怪怪。为什么我的软件取回来的COOKIE却不能用呢?