c#httpclient 代理_C#中给WebClient添加代理Proxy

本文介绍如何在C#中为HttpClient和WebClient添加HTTP代理,包括设置代理地址、端口、用户名和密码,以实现通过代理进行网络请求。
摘要由CSDN通过智能技术生成

usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Net;usingSystem.Text;usingSystem.Windows.Forms;namespaceTestProxy

{public partial classMainForm : Form

{publicMainForm()

{

InitializeComponent();

}private void btnDownload_Click(objectsender, EventArgs e)

{try{

Start();

}catch(Exception ex)

{

MessageBox.Show(ex.Message);

}

}private voidStart()

{

txtResult.Clear();var client = newWebClient();var uri = newUri(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(objectsender, 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(objectsender, EventArgs e)

{

gbProxy.Enabled=checkBox.Checked;

}privateWebProxy CreateProxy()

{var host =txtHost.Text.Trim();if (string.IsNullOrWhiteSpace(host))

{

MessageBox.Show("请输入代理地址");return null;

}var port = 0;try{

port=Convert.ToInt32(txtPort.Text.Trim());

}catch(Exception)

{

MessageBox.Show("请输入正确的代理端口");return null;

}var cre = newNetworkCredential(txtUserName.Text, txtPwd.Text);var proxy = new WebProxy(txtHost.Text.Trim(), port) {Credentials =cre};returnproxy;

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值