网站建设 郑州网站建设 网站制作 网页设计 网站设计 郑州建网站 - 爱易在线

网站地图 | 网站Tags标签 | RSS订阅 | 加入收藏
您的位置:网站首页 > 博客笔记 > 技术交流 > 正文 技术交流相关信息

webBrowser获取完整cookie,并把cookie传给httpHelper

作者:郑州网站建设 2013/6/16 21:26:33 点击: 来源:

webBrowser获取完整cookie,并把cookie传给httpHelper源码

 

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();   
        }               
    }   
}

工程源码下载:http://pan.baidu.com/share/link?shareid=744310193&uk=1929914336   

 

 

 

分享到:

上一篇:详解C#重写WebBrowser组件,禁止跳转到IE新窗口(禁止新窗口,使用本窗口打开)、脚本错误

下一篇:Asp基于Jmail组件的邮件发送

技术交流推荐阅读

用户评论

最新博文

热门排行

推荐信息

关于爱之易| 付款方式| 联系我们| 网站地图| 网站Tags标签 | RSS订阅