代码DEMO

更新时间:2026-07-03

C语言

using System;
using System.IO;
using System.Net;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;

namespace ProxySample {
    internal class Program {
        public static async Task Run() {
            var proxy = new WebProxy("代理IP", 代理端口); //这里替换为你的代理地址和端口
//如使用账号密码验证,反注释此行
            //proxy.Credentials = new NetworkCredential(userName: "账号", password: "密码"); //这里替换成你的验证用户名和密码

            //HttpWebRequest用法
            var req = HttpWebRequest.Create("https://baidu.com");
            req.Proxy = proxy;
            req.Method = "GET";
            var response = req.GetResponse();
            Stream stream = response.GetResponseStream();
            StreamReader sr = null;
            sr = new StreamReader(stream, Encoding.Default);
            var html = sr.ReadToEnd();
            sr.Close();
            sr.Dispose();
            Console.WriteLine(html);

            //HttpClient用法
            var httpClientHandler = new HttpClientHandler {
                Proxy = proxy,
            };
            HttpClient client = new HttpClient(httpClientHandler);
            var ret = await client.GetStringAsync("https://baidu.com");
            Console.WriteLine(ret);
        }

        public static void Main(string[] args) {
            Task.Run(async () => { await Program.Run(); }).Wait();
        }
    }
}

Python语言

#! /usr/bin/python
# coding=utf-8
import requests
import time
# 请求地址
targetUrl = "http://myip.ipip.net"
#
# #代理服务器
proxyHost = "代理IP"
proxyPort = 代理端口

#非账号密码验证
proxyMeta = "http://%(host)s:%(port)s" % {

    "host": proxyHost,
    "port": proxyPort,
}
#账号密码验证
#proxyMeta = "http://账号:密码@%(host)s:%(port)s" % {
#    "host": proxyHost,
#    "port": proxyPort,
#}

#
# #pip install -U requests[socks]  socks5代理
#非账号密码验证
# proxyMeta = "socks5://%(host)s:%(port)s" % {
#
#     "host" : proxyHost,
#
#     "port" : proxyPort,
#
# }
#账号密码验证
# proxyMeta = "socks5://账号:密码%(host)s:%(port)s" % {
#
#     "host" : proxyHost,
#
#     "port" : proxyPort,
#
# }
#

proxies = {
    "http": proxyMeta,
    "https": proxyMeta
}
#
start = int(round(time.time() * 1000))
resp = requests.get(targetUrl, proxies=proxies,timeout=10)
costTime = int(round(time.time() * 1000)) - start
print resp.text
print("耗时:" + str(costTime) + "ms")

GO语言

package main

import (
"fmt"
"io/ioutil"
"log"
"net/http"
"net/url"
"time"
)

func main() {
proxyAddr := "http://代理服务器ip:代理服务器http端口/"
//账号密码验证
//proxyAddr := "http://用户名:密码@代理服务器ip:代理服务器http端口/"

//proxyAddr := "socks5://代理服务器ip:代理服务器http端口/"
//proxyAddr := "socks5://用户名:密码@代理服务器ip:代理服务器http端口/"
httpUrl := "http://myip.ipip.net"
proxy, err := url.Parse(proxyAddr)
if err != nil {
log.Fatal(err)
}
netTransport := &http.Transport{
Proxy:http.ProxyURL(proxy),
MaxIdleConnsPerHost: 10,
ResponseHeaderTimeout: time.Second * time.Duration(5),
}
httpClient := &http.Client{
Timeout: time.Second * 10,
Transport: netTransport,
}
res, err := httpClient.Get(httpUrl)
if err != nil {
log.Println(err)
return
}
defer res.Body.Close()
if res.StatusCode != http.StatusOK {
log.Println(err)
return
}
c, _ := ioutil.ReadAll(res.Body)
fmt.Println(string(c))
}

JavaScript语言

// npm install superagent
// npm install superagent-proxy
let request = require('superagent')
require('superagent-proxy')(request)

let targetUrl = 'http://myip.ipip.net'

let proxyServer = '代理IP:代理端口'
let proxyUrl = 'http://' + proxyServer
//账号密码验证
//let proxyUrl = 'http://' + '账号:密码' + '@' + proxyServer

request.get(targetUrl)
    .proxy(proxyUrl)
    .then(res => {
        console.log(res.text)
    }).catch(err => {
        console.log(err.message)
    })

JAVA语言

package com.example;

import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.Proxy;
import java.nio.charset.StandardCharsets;

import org.apache.http.HttpHost;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;

import okhttp3.Authenticator;
import okhttp3.Credentials;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import okhttp3.Route;

public final class Demo {

    public static void main(String[] args) throws IOException {
        String ip = "192.168.10.10"; // 代理主机地址
        int port = 50000; // 代理主机端口

        // 使用OKHttp库
        OKHttpProxy.build(ip, port).test();
        // OKHttpProxy.build(ip, port, "aaaaaa", "bbbbbb").test(); // 代理认证

        // 使用HttpClient库
        // HttpClientProxy.build(ip, port).test();
        // HttpClientProxy.build(ip, port, "aaaaaa", "bbbbbb").test(); // 代理认证
    }

    /**
     * OKHttp库使用代理
     */
    static class OKHttpProxy {

        String proxyHost;
        int proxyPort;
        String proxyAccount;
        String proxyPwd;

        /**
         * @param host 代理主机地址
         * @param port 代理主机端口
         */
        public static OKHttpProxy build(String host, int port) {
            OKHttpProxy proxy = new OKHttpProxy();
            proxy.proxyHost = host;
            proxy.proxyPort = port;
            return proxy;
        }

        /**
         * @param host 代理主机地址
         * @param port 代理主机端口
         * @param acc 代理认证账号
         * @param pwd 代理认证口令
         */
        public static OKHttpProxy build(String host, int port, String acc, String pwd) {
            OKHttpProxy proxy = new OKHttpProxy();
            proxy.proxyHost = host;
            proxy.proxyPort = port;
            proxy.proxyAccount = acc;
            proxy.proxyPwd = pwd;
            return proxy;
        }

        public void test() throws IOException {
            String targetUrl = "http://myip.ipip.net";

            OkHttpClient client = null;
            if (proxyAccount == null || proxyPwd == null) {
                client = getHttpClient(proxyHost, proxyPort);
            } else {
                // 账号密码验证
                client = getHttpClient(proxyHost, proxyPort, proxyAccount, proxyPwd);
            }

            Request request = new Request.Builder()
                    .url(targetUrl)
                    .build();
            Response response = client.newCall(request).execute();
            System.out.println(response.body().string());
        }

        /**
         * 代理不需要账号密码认证的httpClient
         */
        private static OkHttpClient getHttpClient(String proxyHost, int proxyPort) {
            Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(proxyHost, proxyPort));
            return new OkHttpClient.Builder()
                    .proxy(proxy)
                    .build();
        }

        /**
         * 代理需要账号密码认证的httpClient
         */
        private static OkHttpClient getHttpClient(String proxyHost, int proxyPort, String acc, String pwd) {
            Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(proxyHost, proxyPort));
            // 账号密码验证
            Authenticator authenticator = new Authenticator() {
                @Override
                public Request authenticate(Route route, Response resp) throws IOException {
                    String credential = Credentials.basic(acc, pwd);
                    return resp.request().newBuilder().header("Proxy-Authorization", credential).build();
                }
            };
            return new OkHttpClient.Builder()
                    .proxy(proxy)
                    .proxyAuthenticator(authenticator)
                    .build();
        }

    }
    
    /**
     * HttpClient库使用代理
     */
    static class HttpClientProxy {
        String proxyHost;
        int proxyPort;
        String proxyAccount;
        String proxyPwd;

        /**
         * @param host 代理主机地址
         * @param port 代理主机端口
         */
        public static HttpClientProxy build(String host, int port) {
            HttpClientProxy proxy = new HttpClientProxy();
            proxy.proxyHost = host;
            proxy.proxyPort = port;
            return proxy;
        }

        /**
         * @param host 代理主机地址
         * @param port 代理主机端口
         * @param acc 代理认证账号
         * @param pwd 代理认证口令
         */
        public static HttpClientProxy build(String host, int port, String acc, String pwd) {
            HttpClientProxy proxy = new HttpClientProxy();
            proxy.proxyHost = host;
            proxy.proxyPort = port;
            proxy.proxyAccount = acc;
            proxy.proxyPwd = pwd;
            return proxy;
        }

        public void test() throws IOException {
            String targetUrl = "http://myip.ipip.net";

            CloseableHttpClient client = null;
            if (proxyAccount == null || proxyPwd == null) {
                client = getHttpClient(proxyHost, proxyPort);
            } else {
                // 账号密码验证
                client = getHttpClient(proxyHost, proxyPort, proxyAccount, proxyPwd);
            }
            HttpGet httpGet = new HttpGet(targetUrl);
            CloseableHttpResponse response = client.execute(httpGet);
            String resultStr = EntityUtils.toString(response.getEntity(), StandardCharsets.UTF_8);
            System.out.println(resultStr);
        }

        /**
         * 代理不需要账号密码认证的httpClient
         */
        private static CloseableHttpClient getHttpClient(String proxyHost, int proxyPort) {
            HttpHost proxy = new HttpHost(proxyHost, proxyPort, "HTTP");
            return HttpClients.custom()
                    .setProxy(proxy)
                    .build();
        }

        /**
         * 代理需要账号密码认证的httpClient
         */
        private static CloseableHttpClient getHttpClient(String proxyHost, int proxyPort, String acc, String pwd) {
            HttpHost proxy = new HttpHost(proxyHost, proxyPort, "HTTP");
            CredentialsProvider provider = new BasicCredentialsProvider();
            provider.setCredentials(new AuthScope(proxy), new UsernamePasswordCredentials(acc, pwd));

            return HttpClients.custom()
                    .setProxy(proxy)
                    .setDefaultCredentialsProvider(provider)
                    .build();
        }

    }

}

Kotlin语言

package com.example

import okhttp3.*
import org.apache.http.HttpHost
import org.apache.http.auth.AuthScope
import org.apache.http.auth.UsernamePasswordCredentials
import org.apache.http.client.CredentialsProvider
import org.apache.http.client.methods.HttpGet
import org.apache.http.impl.client.BasicCredentialsProvider
import org.apache.http.impl.client.CloseableHttpClient
import org.apache.http.impl.client.HttpClients
import org.apache.http.util.EntityUtils
import java.io.IOException
import java.net.InetSocketAddress
import java.net.Proxy
import java.nio.charset.StandardCharsets


fun main(args: Array<String>) {
val ip = "192.168.10.10" // 代理主机地址
val port = 50000 // 代理主机端口

// 使用OKHttp库
OKHttpProxy.build(ip, port).test()
// OKHttpProxy.build(ip, port, "aaaaaa", "bbbbbb").test(); // 代理认证

// 使用HttpClient库
// HttpClientProxy.build(ip, port).test();
// HttpClientProxy.build(ip, port, "aaaaaa", "bbbbbb").test(); // 代理认证
}

/**
 * OKHttp库使用代理
 */
internal class OKHttpProxy {
var proxyHost: String? = null
var proxyPort = 0
var proxyAccount: String? = null
var proxyPwd: String? = null

@Throws(IOException::class)
fun test() {
val targetUrl = "http://myip.ipip.net"
var client: OkHttpClient? = null
client = if (proxyAccount == null || proxyPwd == null) {
getHttpClient(proxyHost, proxyPort)
} else {
// 账号密码验证
getHttpClient(proxyHost, proxyPort, proxyAccount!!, proxyPwd!!)
}
val request: Request = Request.Builder()
.url(targetUrl)
.build()
val response: Response = client.newCall(request).execute()
println(response.body?.string())
}

companion object {
/**
 * @param host 代理主机地址
 * @param port 代理主机端口
 */
fun build(host: String?, port: Int): OKHttpProxy {
val proxy = OKHttpProxy()
proxy.proxyHost = host
proxy.proxyPort = port
return proxy
}

/**
 * @param host 代理主机地址
 * @param port 代理主机端口
 * @param acc 代理认证账号
 * @param pwd 代理认证口令
 */
fun build(host: String?, port: Int, acc: String?, pwd: String?): OKHttpProxy {
val proxy = OKHttpProxy()
proxy.proxyHost = host
proxy.proxyPort = port
proxy.proxyAccount = acc
proxy.proxyPwd = pwd
return proxy
}

/**
 * 代理不需要账号密码认证的httpClient
 */
private fun getHttpClient(proxyHost: String?, proxyPort: Int): OkHttpClient {
val proxy = Proxy(Proxy.Type.HTTP, InetSocketAddress(proxyHost, proxyPort))
return OkHttpClient.Builder()
.proxy(proxy)
.build()
}

/**
 * 代理需要账号密码认证的httpClient
 */
private fun getHttpClient(proxyHost: String?, proxyPort: Int, acc: String, pwd: String): OkHttpClient {
val proxy = Proxy(Proxy.Type.HTTP, InetSocketAddress(proxyHost, proxyPort))
// 账号密码验证
val authenticator: Authenticator = Authenticator { _, response ->
val credential: String = Credentials.basic(acc, pwd)
response.request.newBuilder().header("Proxy-Authorization", credential).build()
}
return OkHttpClient.Builder()
.proxy(proxy)
.proxyAuthenticator(authenticator)
.build()
}
}
}

/**
 * HttpClient库使用代理
 */
internal class HttpClientProxy {
var proxyHost: String? = null
var proxyPort = 0
var proxyAccount: String? = null
var proxyPwd: String? = null

@Throws(IOException::class)
fun test() {
val targetUrl = "http://myip.ipip.net"
var client: CloseableHttpClient? = null
client = if (proxyAccount == null || proxyPwd == null) {
getHttpClient(proxyHost, proxyPort)
} else {
// 账号密码验证
getHttpClient(proxyHost, proxyPort, proxyAccount!!, proxyPwd!!)
}
val httpGet = HttpGet(targetUrl)
val response = client.execute(httpGet)
val resultStr: String = EntityUtils.toString(response.entity, StandardCharsets.UTF_8)
println(resultStr)
}

companion object {
/**
 * @param host 代理主机地址
 * @param port 代理主机端口
 */
fun build(host: String?, port: Int): HttpClientProxy {
val proxy = HttpClientProxy()
proxy.proxyHost = host
proxy.proxyPort = port
return proxy
}

/**
 * @param host 代理主机地址
 * @param port 代理主机端口
 * @param acc 代理认证账号
 * @param pwd 代理认证口令
 */
fun build(host: String?, port: Int, acc: String?, pwd: String?): HttpClientProxy {
val proxy = HttpClientProxy()
proxy.proxyHost = host
proxy.proxyPort = port
proxy.proxyAccount = acc
proxy.proxyPwd = pwd
return proxy
}

/**
 * 代理不需要账号密码认证的httpClient
 */
private fun getHttpClient(proxyHost: String?, proxyPort: Int): CloseableHttpClient {
val proxy = HttpHost(proxyHost, proxyPort, "HTTP")
return HttpClients.custom()
.setProxy(proxy)
.build()
}

/**
 * 代理需要账号密码认证的httpClient
 */
private fun getHttpClient(proxyHost: String?, proxyPort: Int, acc: String, pwd: String): CloseableHttpClient {
val proxy = HttpHost(proxyHost, proxyPort, "HTTP")
val provider: CredentialsProvider = BasicCredentialsProvider()
provider.setCredentials(AuthScope(proxy), UsernamePasswordCredentials(acc, pwd))
return HttpClients.custom()
.setProxy(proxy)
.setDefaultCredentialsProvider(provider)
.build()
}
}
}

PHP语言

// 设置代理,格式  ip:port
$proxyServer = "ip:port";
$ch = curl_init();
// 设置请求地址
curl_setopt($ch, CURLOPT_URL, "http://myip.ipip.net");
// 设置代理,格式  http://ip:port
curl_setopt($ch, CURLOPT_PROXY, "http://$proxyServer");
// https请求 不验证证书和hosts
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
//账号密码验证
//curl_setopt($ch, CURLOPT_PROXYUSERPWD, "账号:密码");
$output = curl_exec($ch);
if ($output === FALSE) {
    echo "CURL Error:" . curl_error($ch);
} else {
    echo $output;
}
curl_close($ch);

易语言

.版本 2

.程序集 窗口程序集_启动窗口

.子程序 _按钮1_被单击
.局部变量 响应, 文本型
.局部变量 目标地址, 文本型
.局部变量 代理ip, 文本型
.局部变量 代理端口, 文本型
.局部变量 代理认证用户, 文本型
.局部变量 代理认证密码, 文本型
.局部变量 targetUrl, 文本型


目标地址 = “http://myip.ipip.net”
代理ip = “192.168.10.10”
代理端口 = “5000”
targetUrl = 代理ip + “:” + 代理端口

响应 = 编码_utf8到gb2312 (到文本 (网页_访问_对象 (目标地址, , , , , , , , , , targetUrl, , , , , , )))

' 代理认证用户 = “aaa”
' 代理认证密码 = “bbb”
' 响应 = 编码_utf8到gb2312 (到文本 (网页_访问_对象 (目标地址, , , , , , , , , , targetUrl, , 代理认证用户, 代理认证密码, , , )))
输出调试文本 (响应)