那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

c#語言中怎么使用HTTP代理

華益云HTTP爬蟲IP ? 來源:華益云HTTP爬蟲IP ? 作者:華益云HTTP爬蟲IP ? 2022-09-01 14:46 ? 次閱讀

c#語言中怎么使用HTTP代理。

以下代碼主要圍繞第一次接觸HTTP代理IP的c#新手來寫(步驟注釋清晰)。

直接把下面示例代碼中的HTTP代理API,替換成你后臺生成的代理API鏈接,就可以跑起來了。

以下是一個示例代碼,只是一個基礎(chǔ)的演示,具體的代碼還是要根據(jù)你業(yè)務(wù)的實際情況去寫的。

示例代碼中的HTTP代理IP,我使用的是華益云的HTTP代理API,注冊就白嫖1萬個高匿爬蟲IP,有效期是一年,對于調(diào)試代碼來說這個時間是非常的友好。

示例代碼demo中同款HTTP代理API-點我免費領(lǐng)取10000個高匿IP

打開代理API,獲取里面的IP,使用IP訪問目標(biāo)網(wǎng)站,其實代碼中就是執(zhí)行這個過程而已,然后加了幾個錯誤判斷有助于代碼的穩(wěn)定運行。(步驟注釋清晰)

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text;

namespace proxyRequests
{
    class ProxyInfo
    {
        private string host;
        private int port;
        public ProxyInfo(string host, int port)
        {
            this.host = host;
            this.port = port;
        }
        public string getHost()
        {
            return host;
        }
        public int getPort()
        {
            return port;
        }


    }
    class Program
    {
        static void Main(string[] args)
        {
            // 發(fā)送給服務(wù)器的標(biāo)識
            string userAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/532.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36";
            // 代理api(這里我推薦使用www.9vps.com華益云的HTTP代理API,注冊就白嫖1萬IP)
            string proxyUrl = "http://http.9vps.com/getip.asp?username=166xxxx6597&pwd=xxxxbaa59ce237dff65134984b9cxxxx&geshi=1&fenge=1&fengefu=&Contenttype=1&getnum=20&setcity=&operate=all&";
            List outPutProxy = getProxy(proxyUrl, userAgent);
            if (outPutProxy.Count == 0) {
                return;
            }
            // 目標(biāo)請求網(wǎng)站
            string url = "https://www.qq.com/";
            outPutProxy.Add(new ProxyInfo("1", 0));
            for (int i = 0; i < 3; i++)
            {
                // 最多嘗試三次
                try
                {
                    ProxyInfo px = outPutProxy[0];
                    outPutProxy.Remove(px);
                    WebProxy proxy = new WebProxy(px.getHost(), px.getPort());
                    string outHtml = requestGet(url, userAgent, proxy);
                    Console.WriteLine(outHtml);
                    break;
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.StackTrace);
                    if (outPutProxy.Count == 0)
                    {
                        // 如果發(fā)現(xiàn)沒有代理了,就去獲取下。
                        outPutProxy = getProxy(proxyUrl, userAgent);
                    }
                }
            }
            //Console.WriteLine(requestGet(@"https://www.baidu.com/", userAgent));
            //Console.ReadKey();
        }
        static List getProxy(string proxyUrl, string userAgent) {

            //String proxyUrl = "http://http1.9vps.com/getip.asp?username=用戶名&pwd=API密碼串&geshi=1&fenge=1&fengefu=&Contenttype=1&getnum=2";
            string proxyIps;
            List outPutProxy = new List();
            try
            {
                proxyIps = requestGet(proxyUrl, userAgent, null);
                Console.WriteLine(proxyIps);
                // {"code":3002,"data":[],"msg":"error!用戶名或密碼錯誤","success":false}
                if (proxyIps.Contains("{"))
                {
                    throw new Exception("[錯誤]" + proxyIps);
                }
                String[] splitedString = proxyIps.Split('\n');
                for (int i = 0; i < splitedString.Length; i++)
                {
                    /*
                     * 180.104.192.217:22036
                     * 150.104.192.217:21036

                    */
                    String[] ret = splitedString[i].Split(':');// 180.104.192.217:22036
                    String host = ret[0]; // 180.104.192.217
                    int port = int.Parse(ret[1]); // 22036 
                    outPutProxy.Add(new ProxyInfo(host, port));
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.StackTrace);
            }
            Console.WriteLine("總共獲取了" + outPutProxy.Count + "個代理");

            return outPutProxy;
        }
        static string requestGet(string url, string userAgent, WebProxy proxy)
        {
           
            WebClient client = new WebClient();
            if (proxy != null)
            {
                // 設(shè)置代理部分
                client.Proxy = proxy;
            }
            // 設(shè)置編碼解析方式為 UTF-8,防止中文亂碼
            client.Encoding = Encoding.UTF8;
            client.Headers.Add("user-agent", userAgent);
            return client.DownloadString(url);
        }
    }
}
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • API
    API
    +關(guān)注

    關(guān)注

    2

    文章

    1510

    瀏覽量

    62395
  • HTTP
    +關(guān)注

    關(guān)注

    0

    文章

    511

    瀏覽量

    31518
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4825

    瀏覽量

    69046
收藏 人收藏

    評論

    相關(guān)推薦

    C#語言基礎(chǔ)教程

    C#語言基礎(chǔ)教程主要內(nèi)容:C#語言概述C#語言程序設(shè)計基礎(chǔ)面得對像的
    發(fā)表于 05-21 21:43

    請問 C語言中怎么加上匯編

    請問 C語言中怎么加上匯編PCB打樣找華強 http://www.hqpcb.com 樣板2天出貨
    發(fā)表于 12-18 14:11

    C#語言規(guī)范

    本文描述 C# 編程語言的語法、語義和設(shè)計。C#(讀作“C sharp”)是一種簡單、現(xiàn)代、面向?qū)ο笄翌愋桶踩木幊?b class='flag-5'>語言。
    發(fā)表于 12-26 12:01 ?16次下載

    fiddler4_一款由C#語言開發(fā)的免費http調(diào)試代理軟件

    Fiddler是一款由C#語言開發(fā)的免費http調(diào)試代理軟件,有.net 2 和 .net 4 兩種版本。Fiddler能夠記錄所有的你電腦和互聯(lián)網(wǎng)之間的
    發(fā)表于 12-01 17:19 ?21次下載

    C語言中指針的介紹非常詳細(xì)

    C語言中指針的介紹非常詳細(xì) C語言中指針的介紹非常詳細(xì)
    發(fā)表于 12-25 10:39 ?57次下載

    C語言中的關(guān)鍵字

    C語言中的入門教程
    發(fā)表于 10-14 16:24 ?3次下載

    C#語言程序設(shè)計

    C#是一種優(yōu)秀的面向?qū)ο?b class='flag-5'>語言,它繼承了C++和Java等語言的優(yōu)點,并與現(xiàn)代軟件工程相適應(yīng)。C#語言
    發(fā)表于 04-17 10:44 ?21次下載

    總結(jié)那么幾個C語言中的“坑”

    總結(jié)幾個C語言中的“坑”
    的頭像 發(fā)表于 01-16 10:52 ?2643次閱讀

    C#語言程序設(shè)計實用教程

    C#語言程序設(shè)計實用教程免費下載。
    發(fā)表于 05-24 16:17 ?51次下載

    go語言代碼中使用HTTP代理IP的方法

    如何在go語言代碼中使用HTTP代理IP。
    的頭像 發(fā)表于 08-04 16:13 ?3240次閱讀

    如何在c語言代碼中使用HTTP代理IP

    如何在c語言代碼中使用HTTP代理IP,示例代碼demo直接可用(步驟注釋清晰)
    的頭像 發(fā)表于 08-05 16:31 ?2395次閱讀

    如何在c#語言代碼中使用HTTP代理IP

    如何在c#語言代碼中使用HTTP代理IP,示例代碼demo直接可用(步驟注釋清晰)
    的頭像 發(fā)表于 08-05 16:33 ?2680次閱讀

    go語言中怎么使用HTTP代理

    go語言中怎么使用HTTP代理
    的頭像 發(fā)表于 09-01 14:41 ?2464次閱讀

    e易語言中怎么使用HTTP代理

    e易語言中怎么使用HTTP代理
    的頭像 發(fā)表于 09-01 14:42 ?3883次閱讀

    c語言中怎么使用HTTP代理

    如何再c語言代碼中使用HTTP代理IP。
    的頭像 發(fā)表于 09-01 14:44 ?1456次閱讀
    百家乐庄闲比| 电玩百家乐官网游戏机路单| 妈祖棋牌迷| 百家乐老是输| 肯博百家乐官网的玩法技巧和规则 | 嘉义县| 百家乐娱乐网开户| 百家乐官网桌子黑色| 哪个百家乐官网投注平台信誉好| 六合彩今晚开什么| 百家乐筹码| 玩百家乐怎么能赢吗| 百家乐官网有试玩的吗| 金鼎百家乐官网局部算牌法| 百家乐官网策略| 88娱乐城1| 全讯网3344555| 百家乐赌博破解方法| 百家乐最新套路| 宝马会百家乐官网的玩法技巧和规则| 百家乐官网真人娱乐场| 皇冠网怎么注册| 娱网棋牌官网| 碧桂园太阳城二手房| 百家乐破解仪| 博马百家乐娱乐城| 王子百家乐官网的玩法技巧和规则| 广宁县| 利来娱乐网| 大发888注册送50| 威尼斯人娱乐官方网站| 赌场百家乐实战| 新手百家乐指点迷津| 免费百家乐官网倍投工具| 海尔百家乐官网的玩法技巧和规则 | 皇家百家乐的玩法技巧和规则 | 新全讯网3344666| 大家旺百家乐的玩法技巧和规则 | 蓝盾百家乐官网网址| 网上百家乐官网有人赢过吗| 富易堂百家乐官网娱乐城|