苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

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

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

查看: 23233|回复: 7

[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");

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

本帖被以下淘专辑推荐:

发表于 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 | 显示全部楼层
发表于 2019-11-29 00:51:23 | 显示全部楼层
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

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

GMT+8, 2019-12-10 14:33

© 2017-2018

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