苏飞论坛

标题: webBrowser获取完整cookie,并把cookie传给httpHelper源码 [打印本页]

作者: Monn    时间: 2013-6-16 21:56
标题: webBrowser获取完整cookie,并把cookie传给httpHelper源码
webBrowser获取完整cookie,并把cookie传给httpHelper源码
看了苏飞老大的教程,弄了个实例。。分享下。。嘿嘿 俺是菜鸟,代码写的垃圾。。能看懂就好。。

[C#] 纯文本查看 复制代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using DotNet.Utilities;
namespace webBrowser获取完整cookie
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        HttpHelper http = new HttpHelper();
        HttpItem item = null;
        string cookie = "";
        private void Form1_Load(object sender, EventArgs e)
        {
            webBrowser1.Url = new Uri("http://www.baidu.com/");            
        }
        private void button1_Click(object sender, EventArgs e)
        {
            string str = textBox1.Text.Trim();
            if (str.ToLower().Contains("https://") || str.ToLower().Contains("http://"))
            {
                webBrowser1.Url = new Uri(textBox1.Text.Trim());
            }
            else
            {
                webBrowser1.Url = new Uri("http://" + textBox1.Text.Trim());
            }
        }
        private void button2_Click(object sender, EventArgs e)
        {
            //把webBrowser1登陆的cookie传给HttpHelper
            item = new HttpItem()
            {
                URL = webBrowser1.Url.AbsoluteUri,//URL
                Method = "Get",//URL     可选项 默认为Get   
                Cookie = cookie,//调用webBrowser1登陆的cookie
                ContentType = "application/x-www-form-urlencoded",//返回类型    可选项有默认值   
            };            
            HttpResult result = http.GetHtml(item);
            string html = result.Html;                     
            richTextBox1.AppendText(html + "\r\n\r\n");
        }
        
        private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            try
            {
                cookie=GetCookieString(e.Url.ToString());
                richTextBox1.Text=cookie;
            }
            catch
            {
            }
        }
        //取当前webBrowser登录后的Cookie值   
        [DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)]
        static extern bool InternetGetCookieEx(string pchURL, string pchCookieName, StringBuilder pchCookieData, ref int pcchCookieData, int dwFlags, object lpReserved);
        //取出Cookie,当登录后才能取
        private static string GetCookieString(string url)
        {
            // Determine the size of the cookie      
            int datasize = 256;
            StringBuilder cookieData = new StringBuilder(datasize);
            if (!InternetGetCookieEx(url, null, cookieData, ref datasize, 0x00002000, null))
            {
                if (datasize < 0)
                    return null;
                // Allocate stringbuilder large enough to hold the cookie   
                cookieData = new StringBuilder(datasize);
                if (!InternetGetCookieEx(url, null, cookieData, ref datasize, 0x00002000, null))
                    return null;
            }
            return cookieData.ToString();
        }            
    }
}


工程源码下载:





作者: rxw4703    时间: 2013-6-16 22:38
看看先
作者: xx732395    时间: 2013-6-17 10:06
顶你一个!!
作者: 站长苏飞    时间: 2013-6-17 10:11
不错,是这么个思路, 支持+1
作者: ☆龙★虾☆    时间: 2013-6-18 14:20
学习

作者: AdinZ    时间: 2013-7-6 00:15
喜欢得啦水井坊卡萨丁进付款啦是

作者: whydbg    时间: 2013-7-6 23:24
看看
作者: zhwq107    时间: 2013-7-8 21:11
受教了,学习中……
作者: JackFamily    时间: 2013-7-16 14:14
受教了,学习中……
作者: xiaomazhu    时间: 2013-7-20 15:59
看看是否能用

作者: xiaomazhu    时间: 2013-7-20 16:46
.net4.0 无法使用
作者: aaaxjb    时间: 2013-7-23 00:11
很好!!!谢谢!

作者: 黑白人生    时间: 2013-7-24 22:38
看看什么情况

作者: 狗屎先生    时间: 2013-7-29 08:58
正需要这个东西 ~

作者: 970443232    时间: 2013-7-29 22:29
970443232,如果您要查看本帖隐藏内容请回复
作者: foxbone    时间: 2013-7-30 13:35
对这个感兴趣,感谢分享
作者: wooeng    时间: 2013-7-31 21:25
试试这个

作者: lcylcyll    时间: 2013-8-10 14:14
看看怎么样啊
作者: zhushangwei    时间: 2013-8-10 18:00
不错
作者: xjwebs    时间: 2013-8-11 19:51
用这个来学习下http类用法

作者: 苦逼的挨踢屌丝    时间: 2013-8-13 17:55
受教了,学习中……
作者: 天山明月    时间: 2013-8-18 14:28
看看先

作者: 天山明月    时间: 2013-8-21 04:55
没有发现登陆的代码,只是打开网页。

也就是获取页面打开时服务器就传了cookies,看来cookies不能用来判断是否登陆成功


作者: 你的香气...    时间: 2013-8-22 20:08
很想看看楼主的源码,顶

作者: 天山明月    时间: 2013-8-23 15:10
不错

作者: myde520    时间: 2013-8-24 14:20
看看是不是我想要的
作者: myde520    时间: 2013-8-24 14:24
我这边运行怎么出错呀
作者: myde520    时间: 2013-8-24 14:29
(, 下载次数: 108)