http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

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

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 36543|回复: 8

[WebBrowser] C#webBrowser使用代理服务器的方法winform

[复制链接]
发表于 2013-3-29 13:16:38 | 显示全部楼层 |阅读模式
                           C#webBrowser使用代理服务器的方法winform
   其实在C#中使用webBrowser大家应该都会了,论坛也有很多相前的例子大家可以查询一下就知道了
但是像直接使用浏览器一样设置代理 的方法可能很多人还不知道吧。
这个其实是调用一个Dll文件进行设置的,
下面大家跟我一起来看看吧
首先还是要先建一个结构就是代理信息的结构体
如下
[C#] 纯文本查看 复制代码
 /// <summary>
    /// 代理结构体
    /// </summary>
    public struct Struct_INTERNET_PROXY_INFO
    {
        public int dwAccessType;
        public IntPtr proxy;//IP以及端口号
        public IntPtr proxyBypass;
    };

下面是如何 设置代理 的具体实现
[C#] 纯文本查看 复制代码
/// <summary>
        /// 设置代理的Api
        /// </summary>
        /// <returns></returns>
        [DllImport("wininet.dll", SetLastError = true)]
        private static extern bool InternetSetOption(IntPtr hInternet, int dwOption, IntPtr lpBuffer, int lpdwBufferLength);

        /// <summary>
        /// 代理IP以及端口号
        /// </summary>
        /// <param name="strProxy"></param>
        private void RefreshIESettings(string strProxy)
        {
            const int INTERNET_OPTION_PROXY = 38;
            const int INTERNET_OPEN_TYPE_PROXY = 3;

            Struct_INTERNET_PROXY_INFO struct_IPI;

            // Filling in structure 
            struct_IPI.dwAccessType = INTERNET_OPEN_TYPE_PROXY;
            struct_IPI.proxy = Marshal.StringToHGlobalAnsi(strProxy);
            struct_IPI.proxyBypass = Marshal.StringToHGlobalAnsi("local");

            // Allocating memory 
            IntPtr intptrStruct = Marshal.AllocCoTaskMem(Marshal.SizeOf(struct_IPI));

            // Converting structure to IntPtr 
            Marshal.StructureToPtr(struct_IPI, intptrStruct, true);

            bool iReturn = InternetSetOption(IntPtr.Zero, INTERNET_OPTION_PROXY, intptrStruct, Marshal.SizeOf(struct_IPI));
        }[

使用的时候也非常的简单
[C#] 纯文本查看 复制代码
RefreshIESettings("41.129.53.227:80");
                webBrowser1.Navigate("http://www.sufeinet.com");

这样就可以了。
好了大家自己试试吧。

本帖被以下淘专辑推荐:



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2013-9-3 10:01:33 | 显示全部楼层
如果代理需要用户名和密码呢?
发表于 2013-9-11 10:58:30 | 显示全部楼层
刚才测了下,页面没有打开,并且页面的url变成res://ieframe.dll/dnserrordiagoff_webOC.htm#测试的Url


这是什么 情况 ?

发表于 2013-9-17 04:27:27 | 显示全部楼层
鼓励一下,帖子非常好
发表于 2014-5-5 23:19:19 | 显示全部楼层
不起作用 是什么原因?
发表于 2014-9-9 23:00:38 | 显示全部楼层
强烈支持楼主ing……
发表于 2019-11-29 00:51:23 | 显示全部楼层
请问楼主,怎么知道设置的代理成功了呢?
发表于 2020-1-4 10:49:32 | 显示全部楼层
webBrowser使用代理服务器的方法winform
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

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

GMT+8, 2024-4-19 14:11

© 2014-2021

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