苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper万能框架(V2.3-含.netcore) HttpHelper官方出品,无敌框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 最牛的爬虫类,没有爬不到只有想不到 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 37194|回复: 330

[源码分享] webBrowser获取完整cookie,并把cookie传给httpHelper源码

  [复制链接]
发表于 2013-6-16 21:56:03 | 显示全部楼层 |阅读模式
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();
        }            
    }
}


工程源码下载:
游客,如果您要查看本帖隐藏内容请回复




发表于 2013-6-16 22:38:36 | 显示全部楼层
回复

使用道具 举报

发表于 2013-6-17 10:06:18 | 显示全部楼层
回复

使用道具 举报

发表于 2013-6-17 10:11:56 | 显示全部楼层
发表于 2013-6-18 14:20:00 | 显示全部楼层
回复

使用道具 举报

发表于 2013-7-6 00:15:34 | 显示全部楼层
发表于 2013-7-6 23:24:46 | 显示全部楼层
回复

使用道具 举报

发表于 2013-7-8 21:11:39 | 显示全部楼层
发表于 2013-7-16 14:14:28 | 显示全部楼层
发表于 2013-7-20 15:59:25 | 显示全部楼层
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备17001017号-1)

GMT+8, 2019-11-17 08:13

© 2017-2018

快速回复 返回顶部 返回列表