本示例代码演示了如何使用Java通过IPWO代理服务访问外部网站。通过设置代理、进行基本认证,并获取网站数据,开发者可以了解如何在应用中集成IPWO的代理服务。此代码为使用IPWO代理提供了一个简单的实现示范。

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.*;
import java.util.Base64;

public class Main {
    public static void main(String[] args) throws Exception {
        try {
            // 设置代理主机和端口,这里是IPWO提供的代理服务
            String proxyHost = "us.ipwo.net"; // ipwo代理服务器地址
            int proxyPort = 7878; // 此处为IPWO代理的端口
            
            // 创建代理对象,指定代理类型(HTTP代理)和代理的地址与端口
            Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(proxyHost, proxyPort));// 用户名和密码,这里使用的是IPWO的子账号和子账号密码
            String username = "username_custom_zone_us"; // 替换为你的IPWO子账号
            String password = "password"; // 替换为你的IPWO子账号密码
            String credentials = username + ":" + password; //组合子账号名和密码,使用冒号连接
            URL url = new URL("http://ipinfo.io"); // 访问ipinfo.io网站,获取IP信息
            
            // 打开与指定URL的连接,使用HTTP协议和代理设置
            HttpURLConnection connection = (HttpURLConnection) url.openConnection(proxy);
            
            // 设置请求方式为GET,表示我们要获取该URL的数据
            connection.setRequestMethod("GET");
            
            // 设置HTTP请求头部,加入代理认证信息,使用Base64编码后的凭证
            connection.setRequestProperty("Proxy-Authorization", "Basic " + encodedCredentials);
            
            // 获取响应码,检查请求是否成功
            int responseCode = connection.getResponseCode(); 
            System.out.println("Response Code: " + responseCode); // 输出响应码,通常200表示成功
            
            // 创建BufferedReader读取响应内容
            BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
            
            String inputLine;
            StringBuilder response = new StringBuilder(); // 用于存储返回的内容
            
            // 逐行读取响应内容,直到没有内容
            while ((inputLine = in.readLine()) != null) {
                response.append(inputLine); // 将每行内容追加到响应字符串中
            }
            
            // 关闭BufferedReader
            in.close();
            
            // 打印最终的响应内容(即ipinfo.io返回的IP信息)
            System.out.println((response.toString())); // 输出获取的IP信息
            
        } catch (IOException e) {
            // 如果发生IOException错误,打印堆栈信息
            e.printStackTrace();
        }
    }
}

 

 

常见问题

汇总产品使用中常见技术问题、操作指南及功能说明,提供专业解答,助您快速掌握产品特性并优化使用体验。

查看更多 右箭头
新用户专享
注册领取 500M 免费测试
9000万+纯净高质代理池,助力您实现业务目标!