C# webbrowser 代理

百度,google加自己理解后,将所得方法总结一下:

    方法1:修改注册表Software//Microsoft//Windows//CurrentVersion//Internet SettingsProxyEnable和ProxyServer。这种方法适用于局域网用户,拨号用户无效。

    

 1 public partial class Form1 : Form
 2    {       
 3
 4        //用于刷新注册表
 5        [DllImport(@"wininet",
 6        SetLastError = true,
 7        CharSet = CharSet.Auto,
 8        EntryPoint = "InternetSetOption",
 9        CallingConvention = CallingConvention.StdCall)]
10
11
12        public static extern bool InternetSetOption
13        (
14        int hInternet,
15        int dmOption,
16        IntPtr lpBuffer,
17        int dwBufferLength
18        );
19
20         private void btnStart_Click(object sender, EventArgs e)
21        {
22            RegistryKey pregkey;
23                pregkey = Registry.CurrentUser.OpenSubKey("Software//Microsoft//Windows//CurrentVersion//Internet Settings"true);
24                if (pregkey == null)
25                {
26                    Console.WriteLine("键值不存在");
27                }

28                else
29                {
30                    pregkey.SetValue("ProxyEnable"1);
31                    pregkey.SetValue("ProxyServer""代理地址");
32                    //激活代理设置
33                    InternetSetOption(039, IntPtr.Zero, 0);
34                    InternetSetOption(037, IntPtr.Zero, 0);
35                    webBrowser1.Navigate(txtweb.Text, false);
36                    // System.Threading.Thread.Sleep(10000);
37                }

38        }

39}

方法2: 修改注册表 Software//Microsoft//Windows//CurrentVersion//Internet Settings//Connections下以你拨号连接名为键的值,该键为二进制。这种方法适用于拨号用户。

    
public partial class FrmMain : Form
    
{

[DllImport(
@"wininet",
        SetLastError 
= true,
        CharSet 
= CharSet.Auto,
        EntryPoint 
= "InternetSetOption",
        CallingConvention 
= CallingConvention.StdCall)]


        
public static extern bool InternetSetOption
        (
        
int hInternet,
        
int dmOption,
        IntPtr lpBuffer,
        
int dwBufferLength
        );

//将值转换为注册表中的二进制值
public byte ChangeTobyte(char i)
        
{
            
byte key = 0;
            
switch (i)
            
{
                
case '0': key = 48break;
                
case '1': key = 49break;
                
case '2': key = 50break;
                
case '3': key = 51break;
                
case '4': key = 52break;
                
case '5': key = 53break;
                
case '6': key = 54break;
                
case '7': key = 55break;
                
case '8': key = 56break;
                
case '9': key = 57break;
                
case '.': key = 46break;
                
case ':': key = 58break;
                
            }

            
return key;
        }


private void btnStart_Click(object sender, EventArgs e)
        
{
             
int i = ("代理地址").Length;
                
byte[] key = new byte[50];
                
char[] source = ("代理地址").ToCharArray();
                key[
0= 60;
                key[
4= 3;
                key[
8= 3;
                key[
12= (byte)i;
                
for (int ii = 0; ii < source.Length; ii++)
                
{
                    key[
16 + ii] = ChangeTobyte(source[ii]);
                }

                
string sDirectX = "";
                
for (int k = 0; k < key.Length; k++)
                
{
                    
if (key[k] != 0)
                    
{
                        sDirectX 
+= key[k] + " ";
                    }

                }

                
//MessageBox.Show(sDirectX);
                RegistryKey pregkey;
                pregkey 
= Registry.CurrentUser.OpenSubKey("Software//Microsoft//Windows//CurrentVersion//Internet Settings//Connections"true);
                
if (pregkey == null)
                
{
                    Console.WriteLine(
"键值不存在");
                }

                
else
                
{
                    pregkey.SetValue(
"拨号名字对应键值", key, RegistryValueKind.Binary);
                    
//激活代理设置
                    InternetSetOption(039, IntPtr.Zero, 0);
                    InternetSetOption(
037, IntPtr.Zero, 0);
                    webBrowser1.Navigate(txtweb.Text, 
false);
                    webBrowser1.Refresh();
                    
                }


        }

}

方法3: 使用c#自带的 webproxy类,使用这种方法可以获得目标网站的响应,但我不会把这种响应用IE反馈出来,有高手帮个忙么?
网上的代码说是MSDN的:
    HttpWebRequest myWebRequest=(HttpWebRequest)WebRequest.Create(" http://www.microsoft.com"/); 
    WebProxy myProxy=new WebProxy(); 
    // Obtain the 'Proxy' of the  Default browser.   
     myProxy=(WebProxy)myWebRequest.Proxy; 这行我编译不通过
    // Print the Proxy Url to the console. 
    Console.WriteLine("/nThe actual default Proxy settings are {0}",myProxy.Address); 
    try 
    { 
    Console.WriteLine("/nPlease enter the new Proxy Address that is to be set:"); 
    Console.WriteLine("(Example: http://myproxy.example.com:port/)"); 
    string proxyAddress; 
    proxyAddress =Console.ReadLine(); 
    if(proxyAddress.Length>0) 

    { 
    Console.WriteLine("/nPlease enter the Credentials "); 
    Console.WriteLine("Username:"); 
    string username; 
    username =Console.ReadLine(); 
    Console.WriteLine("/nPassword:"); 
    string password; 
    password =Console.ReadLine(); 
    // Create a new Uri object. 
    Uri newUri=new Uri(proxyAddress); 
    // Associate the newUri object to 'myProxy' object so that new myProxy settings can be set. 
    myProxy.Address=newUri; 
    // Create a NetworkCredential object and associate it with the Proxy property of request object. 
    myProxy.Credentials=new NetworkCredential(username,password); 
    myWebRequest.Proxy=myProxy; 
    } 
    Console.WriteLine("/nThe Address of the  new Proxy settings are {0}",myProxy.Address); 
    HttpWebResponse myWebResponse=(HttpWebResponse)myWebRequest.GetResponse();

我改了下:
    

            HttpWebRequest myWebRequest = (HttpWebRequest)WebRequest.Create("http://www.123cha.com");
            WebProxy myProxy = new WebProxy("代理地址", true);
            try
            {
               
                Console.WriteLine("/nThe Address of the  new Proxy settings are {0}", myProxy.Address);
                HttpWebResponse myWebResponse = (HttpWebResponse)myWebRequest.GetResponse();
              
                webBrowser1.DocumentStream = myWebResponse.GetResponseStream();
             

            }
            catch { }


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/388880.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C MySQL读写分离连接串_Mysql读写分离

一 什么是读写分离MySQL Proxy最强大的一项功能是实现“读写分离(Read/Write Splitting)”。基本的原理是让主数据库处理事务性查询&#xff0c;而从数据库处理SELECT查询。数据库复制被用来把事务性查询导致的变更同步到集群中的从数据库。当然&#xff0c;主服务器也可以提供…

从Jupyter Notebook到脚本

16 Aug: My second article: From Scripts To Prediction API8月16日&#xff1a;我的第二篇文章&#xff1a; 从脚本到预测API As advanced beginners, we know quite a lot: EDA, ML concepts, model architectures etc…… We can write a big Jupyter Notebook, click “Re…

加勒比海兔_加勒比海海洋物种趋势

加勒比海兔Ok, here’s a million dollar question: is the Caribbean really dying? Or, more specifically, are marine species found on Caribbean reefs becoming less abundant?好吧&#xff0c;这是一个百万美元的问题&#xff1a;加勒比海真的死了吗&#xff1f; 或者…

tornado 简易教程

引言 回想Django的部署方式 以Django为代表的python web应用部署时采用wsgi协议与服务器对接&#xff08;被服务器托管&#xff09;&#xff0c;而这类服务器通常都是基于多线程的&#xff0c;也就是说每一个网络请求服务器都会有一个对应的线程来用web应用&#xff08;如Djang…

人口密度可视化_使用GeoPandas可视化菲律宾的人口密度

人口密度可视化GeoVisualization /菲律宾。 (GeoVisualization /Philippines.) Population density is a crucial concept in urban planning. Theories on how it affects economic growth are divided. Some claim, as Rappaport does, that an economy is a form of “spati…

Unity - Humanoid设置Bip骨骼导入报错

报错如下&#xff1a; 解决&#xff1a; 原因是biped骨骼必须按照Unity humanoid的要求设置&#xff0c;在max中设置如下&#xff1a; 转载于:https://www.cnblogs.com/CloudLiu/p/10746052.html

Kubernetes - - k8s - v1.12.3 OpenLDAP统一认证

1&#xff0c;基本概念 为了方便管理和集成jenkins&#xff0c;k8s、harbor、jenkins均使用openLDAP统一认证。2&#xff0c;部署openLDAP 根据之前的文档&#xff0c;openLDAP使用GFS进行数据持久化。下载对应的openLDAP文件git clone https://github.com/xiaoqshuo/k8s-clust…

srpg 胜利条件设定_英雄联盟获胜条件

srpg 胜利条件设定介绍 (Introduction) The e-sports community has been growing rapidly in the past few years, and what used to be a casual pastime has morphed into an industry projected to generate $1.8 B in revenue by 2022. While there are many video games …

机器学习 综合评价_PyCaret:机器学习综合

机器学习 综合评价Any Machine Learning project journey starts with loading the dataset and ends (continues ?!) with the finalization of the optimum model or ensemble of models for predictions on unseen data and production deployment.任何机器学习项目的旅程都…

silverlight 3D 游戏开发

http://www.postvision.net/SilverMotion/DemoTech.aspx silverlight 3D 游戏开发 时间:2010-10-22 06:33来源:开心银光 作者:黎东海 点击: 562次意外发现一个silverlight的实时3D渲染引擎。性能比开源那些强很多。 而且支持直接加载maya,3Dmax等主流3D模型文件。 附件附上它的…

皮尔逊相关系数 相似系数_皮尔逊相关系数

皮尔逊相关系数 相似系数数据科学和机器学习统计 (STATISTICS FOR DATA SCIENCE AND MACHINE LEARNING) In the last post, we analyzed the relationship between categorical variables and categorical and continuous variables. In this case, we will analyze the relati…

Kubernetes持续交付-Jenkins X的Helm部署

Jenkins X 是一个集成化的 CI / CD 平台&#xff0c;可用于 部署在Kubernetes集群或云计算中心。支持在云计算环境下简单地开发和部署应用。本项目是在Kubernetes上的安装支持工具集。 本工具集中包含&#xff1a; Jenkins - 定制好的流水线和运行环境&#xff0c;完全整合CI/C…

中国石油大学(华东)暑期集训--二进制(BZOJ5294)【线段树】

问题 C: 二进制 时间限制: 1 Sec 内存限制: 128 MB提交: 8 解决: 2[提交] [状态] [讨论版] [命题人:]题目描述 pupil发现对于一个十进制数&#xff0c;无论怎么将其的数字重新排列&#xff0c;均不影响其是不是3的倍数。他想研究对于二进制&#xff0c;是否也有类似的性质。于…

Java 8 新特性之Stream API

1. 概述 1.1 简介 Java 8 中有两大最为重要的改革&#xff0c;第一个是 Lambda 表达式&#xff0c;另外一个则是 Stream API&#xff08;java.util.stream.*&#xff09;。 Stream 是 Java 8 中处理集合的关键抽象概念&#xff0c;它可以指定你希望对集合进行的操作&#xff0c…

Ubuntu中NS2安装详细教程

前言&#xff1a; NS2是指 Network Simulator version 2&#xff0c;NS&#xff08;Network Simulator&#xff09; 是一种针对网络技术的源代码公开的、免费的软件模拟平台&#xff0c;研究人员使用它可以很容易的进行网络技术的开发&#xff0c;而且发展到今天&#xff0c;它…

14.vue路由脚手架

一.vue路由&#xff1a;https://router.vuejs.org/zh/ 1、定义 let router new VueRouter({mode:"history/hash",base:"基本路径" 加一些前缀 必须在history模式下有效linkActiveClass:"active", 范围选择linkExactActiveClass:"exact&qu…

linux-buff/cache过大导致内存不足-程序异常

2019独角兽企业重金招聘Python工程师标准>>> 问题描述 Linux内存使用量超过阈值&#xff0c;使得Java应用程序无可用内存&#xff0c;最终导致程序崩溃。即使在程序没有挂掉时把程序停掉&#xff0c;系统内存也不会被释放。 找原因的过程 这个问题已经困扰我好几个月…

Android 适配(一)

一、Android适配基础参数1.常见分辨率&#xff08;px&#xff09;oppx 2340x1080oppR15 2280x1080oppor11sp 2160*10801080*1920 (主流屏幕16&#xff1a;9)1080*216018:9 手机主流分辨率&#xff1a; 1080*2160高端 16:9 手机主流分辨率&#xff1a; 1080P (1080*1920) 或 2K …

Source Insight 创建工程(linux-2.6.22.6内核源码)

1. 软件设置 安装完Source Insight&#xff0c;需要对其进行设置添加对“.S”汇编文件的支持&#xff1a; 2. 新建linux-2.6.22.6工程 1&#xff09;选择工程存放的路径&#xff1a; 2&#xff09;下载linux-2.6.22.6内核源码&#xff0c;并解压。在Source Insight中 指定源码的…

课时20:内嵌函数和闭包

目录&#xff1a; 一、global关键字 二、内嵌函数 三、闭包 四、课时20课后习题及答案 ******************** 一、global关键字 ******************** 全局变量的作用域是整个模块&#xff08;整个代码段&#xff09;&#xff0c;也就是代码段内所有的函数内部都可以访问到全局…