代码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, , 代理认证用户, 代理认证密码, , , )))
输出调试文本 (响应)