效果图:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Net;
using System.Text;
using System.Windows.Forms; namespace TestProxy
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
} private void btnDownload_Click(object sender, EventArgs e)
{
try
{
Start();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
} private void Start()
{
txtResult.Clear();
var client = new WebClient();
var uri = new Uri(txtUrl.Text.Trim());
client.DownloadStringCompleted += client_DownloadStringCompleted;
client.Encoding = Encoding.UTF8; if (checkBox.Checked)
{
var proxy = CreateProxy();
if (proxy == null) return;
client.Proxy = proxy;
}
client.DownloadStringAsync(uri);
} private void client_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
try
{
txtResult.Text = e.Result;
}
catch (Exception ex)
{
var msg = ex.Message;
if (ex.InnerException != null) msg = ex.InnerException.Message;
MessageBox.Show(msg);
}
} private void checkBox_CheckedChanged(object sender, EventArgs e)
{
gbProxy.Enabled = checkBox.Checked;
} private WebProxy CreateProxy()
{
var host = txtHost.Text.Trim();
if (string.IsNullOrWhiteSpace(host))
{
MessageBox.Show("请输入代理地址");
return null;
}
var port = ;
try
{
port = Convert.ToInt32(txtPort.Text.Trim());
}
catch (Exception)
{
MessageBox.Show("请输入正确的代理端口");
return null;
}
var cre = new NetworkCredential(txtUserName.Text, txtPwd.Text);
var proxy = new WebProxy(txtHost.Text.Trim(), port) {Credentials = cre};
return proxy;
}
}
}

C#中给WebClient添加代理Proxy的更多相关文章

  1. react 添加代理 proxy

    react package.json中proxy的配置如下 "proxy": { "/api/rjwl": { "target": &quo ...

  2. 代理(Proxy)和反射(Reflection)

    前面的话 ES5和ES6致力于为开发者提供JS已有却不可调用的功能.例如在ES5出现以前,JS环境中的对象包含许多不可枚举和不可写的属性,但开发者不能定义自己的不可枚举或不可写属性,于是ES5引入了O ...

  3. 深度揭秘ES6代理Proxy

    最近在博客上看到关于ES6代理的文章都是一些关于如何使用Proxy的例子,很少有说明Proxy原理的文章,要知道只有真正掌握了一项技术的原理,才能够写出精妙绝伦的代码,所以我觉得有必要写一篇关于深刻揭 ...

  4. Webpack代理proxy配置,解决本地跨域调试问题,同时允许绑定host域名调试

    Webpack代理proxy配置,解决本地跨域调试问题,同时允许绑定host域名调试 会撸码的小马 关注 2018.05.29 17:30* 字数 212 阅读 1488评论 0喜欢 2 接到上一章, ...

  5. docker中使用nginx容器代理其他容器

    Nginx is an HTTP and reverse proxy server, a mail proxy server, and a generic TCP/UDP proxy server, ...

  6. JAVA设计模式-动态代理(Proxy)源码分析

    在文章:JAVA设计模式-动态代理(Proxy)示例及说明中,为动态代理设计模式举了一个小小的例子,那么这篇文章就来分析一下源码的实现. 一,Proxy.newProxyInstance方法 @Cal ...

  7. 漫谈设计模式(一):代理(Proxy)模式与适配器(Adapter)模式对比

    1.前言 为什么要将代理模式与适配器模式放在一起来说呢?因为它们有许多的共同点,当然也有一些不同的地方.首先两者都是属于结构型模式.结构型模型是这样定义的: 结构型模式涉及到如何组合类和类以获得更大的 ...

  8. iOS开发小技巧 - label中的文字添加点击事件

    Label中的文字添加点击事件 GitHub地址:https://github.com/lyb5834/YBAttributeTextTapAction 以前老师讲过类似的功能,自己懒得回头看了,找了 ...

  9. Spring中的cglib动态代理

    Spring中的cglib动态代理 cglib:Code Generation library, 基于ASM(java字节码操作码)的高性能代码生成包 被许多AOP框架使用 区别于JDK动态代理,cg ...

随机推荐

  1. IT人的格言警句

    程序员困境:我们通过编码谋生,但环境却正在摧毁我们这种谋生的能力. 在技术日新月异的IT行业,“专家”这个词其实是个危险信号,意味着你的知识距离老化不远了.IT工程师应该经常更换工作领域,了解多个领域 ...

  2. Matlab GUI读入图片

    % --- Executes on button press in pushbutton1. function pushbutton1_Callback(hObject, eventdata, han ...

  3. Java web的安全约束--Basic验证

    要进行basic验证是用户名/口令机制,当浏览器要访问受保护的资源时,服务器会要求一个用户名和口令,只有输入了合法的用户名和口令.服务器才发送资源.用户名和口令可以存储在安全域中.安全域是标识一个We ...

  4. PHP 运用rsa加密和解密实例

    1.加密解密的第一步是生成公钥.私钥对,私钥加密的内容能通过公钥解密(反过来亦可以) 下载开源RSA密钥生成工具openssl(通常Linux系统都自带该程序),解压缩至独立的文件夹,进入其中的bin ...

  5. Java—集合框架 List和Set的contains()以及Map的containsKey()、containsValue()

    如何判断集合中是否存在某个元素——contains() 1.List的contains(obj)方法 实际上,List调用contains(Object obj)方法时,会遍历List中的每一个元素, ...

  6. geth访问公有链

    同步以太坊,配置rpc地址 mkdir /opt/blockchain nohup geth --syncmode "fast" --cache=1024 --maxpeers 3 ...

  7. 数组:获取数组中最后一个数据end()函数

    今天来学习一下end()函数 1.案例:直接获取数组中最后一个数据 代码部分 结果: 2.案例:从url中获取最后一个数据 代码部分: 结果: 总结: 1.有时候我们需要去获取数据库中,id最大的那个 ...

  8. zip4j之加压解压

    最近看同事搞个文件打包,搞了大半天,还是有问题!嗨~~ 网上明明有现成的,偏偏要自己写! 下面是基于zip4j实现加压解决的简单工具类 package com.learcher.zip; import ...

  9. React总结和遇到的坑

    一.react项目 前端react后端node:https://github.com/GainLoss/react-juejin 前端react后端Pyton:https://github.com/G ...

  10. SQA1

    客观地验证软件项目产品和工作是否遵循恰当的标准.步骤和需求. 2.将软件质量保证工作及结果通知给相关组别和个人.