zoukankan      html  css  js  c++  java
  • C#中给WebClient添加代理Proxy

    效果图:

    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 = 0;  
                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;  
            }  
        }  
    }  
  • 相关阅读:
    对拍
    浅谈trie树
    蒟蒻的二分模板
    浅谈线性素数筛
    浅谈树状数组
    HDU 2181 哈密顿绕行世界问题
    HDU 3567 Eight II
    HDU 1043 Eight
    POJ 3076 Sudoku
    hihoCoder 1087 Hamiltonian Cycle
  • 原文地址:https://www.cnblogs.com/anlaoliu/p/7268624.html
Copyright © 2011-2022 走看看