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;
}
}
}