{"id":667,"date":"2025-11-19T11:33:59","date_gmt":"2025-11-19T03:33:59","guid":{"rendered":"https:\/\/help.ipnut.com\/?post_type=docs&#038;p=667"},"modified":"2025-12-03T17:50:21","modified_gmt":"2025-12-03T09:50:21","password":"","slug":"tong-guo-java-yu-yan-jie-ru-dai-ma-demo","status":"publish","type":"docs","link":"https:\/\/www.ipnut.com\/cn\/help\/kai-fa-wen-dang\/tong-guo-java-yu-yan-jie-ru-dai-ma-demo\/","title":{"rendered":"\u901a\u8fc7Java\u8bed\u8a00\u63a5\u5165\u4ee3\u7801Demo"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"667\" class=\"elementor elementor-667\" data-elementor-post-type=\"docs\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e9e2505 e-flex e-con-boxed e-con e-parent\" data-id=\"e9e2505\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a2b9df5 elementor-widget elementor-widget-text-editor\" data-id=\"a2b9df5\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>\u901a\u8fc7Java\u8bed\u8a00\u914d\u7f6eIPNut \u4ee3\u7406\uff1a<\/p><p>\u8fdb\u5165 <strong><a href=\"https:\/\/www.ipnut.com\/cn\/\" target=\"_blank\" rel=\"noopener nofollow\">IPNut<\/a><\/strong> \u5e73\u53f0\u8d2d\u4e70\u5e76\u83b7\u53d6\u4fe1\u606f\uff0c\u8fd9\u91cc\u4ee5\u9759\u6001IP\u4e3a\u4f8b\uff08\u5047\u5982\u7aef\u53e3\u662f http:\/\/proxy.ipnut.com:28001\uff0c\u8d26\u53f7: ipnut\uff0c\u5bc6\u7801: 123456789\uff09\u3002<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2e01b4c elementor-widget elementor-widget-heading\" data-id=\"2e01b4c\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h6 class=\"elementor-heading-title elementor-size-default\"><span style=\"font-size: 16px\">1. SOCKS5\u4ee3\u7406\u793a\u4f8b<\/span><span style=\"font-size: 16px\"><\/span><\/h6>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e43502d elementor-widget elementor-widget-code-highlight\" data-id=\"e43502d\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-java \">\n\t\t\t\t<code readonly=\"true\" class=\"language-java\">\n\t\t\t\t\t<xmp>import java.io.*;\r\nimport java.net.*;\r\nimport java.net.http.HttpClient;\r\nimport java.net.http.HttpRequest;\r\nimport java.net.http.HttpResponse;\r\nimport java.time.Duration;\r\n\r\npublic class Socks5ProxyDemo {\r\n    \r\n    \/\/ \u4ee3\u7406\u914d\u7f6e\r\n    private static final String PROXY_HOST = \"proxy.ipnut.com\";\r\n    private static final int PROXY_PORT = 28001;\r\n    private static final String PROXY_USERNAME = \"ipnut\";\r\n    private static final String PROXY_PASSWORD = \"123456789\";\r\n    \r\n    public static void main(String[] args) {\r\n        System.out.println(\"=== SOCKS5 \u4ee3\u7406\u6f14\u793a ===\\n\");\r\n        \r\n        socks5WithHttpClient();\r\n        socks5WithSocket();\r\n        socks5WithCustomRequest();\r\n    }\r\n    \r\n    \/**\r\n     * \u4f7f\u7528 Java 11+ HttpClient \u7684 SOCKS5 \u4ee3\u7406\r\n     *\/\r\n    public static void socks5WithHttpClient() {\r\n        System.out.println(\"1. \u4f7f\u7528 HttpClient \u7684 SOCKS5 \u4ee3\u7406:\");\r\n        \r\n        try {\r\n            \/\/ \u521b\u5efa SOCKS5 \u4ee3\u7406\r\n            Proxy proxy = new Proxy(Proxy.Type.SOCKS, \r\n                new InetSocketAddress(PROXY_HOST, PROXY_PORT));\r\n            \r\n            \/\/ \u521b\u5efa HttpClient \u4f7f\u7528 SOCKS5 \u4ee3\u7406\r\n            HttpClient client = HttpClient.newBuilder()\r\n                .proxy(ProxySelector.of(new InetSocketAddress(PROXY_HOST, PROXY_PORT)))\r\n                .connectTimeout(Duration.ofSeconds(30))\r\n                .build();\r\n            \r\n            \/\/ \u521b\u5efa\u8bf7\u6c42\r\n            HttpRequest request = HttpRequest.newBuilder()\r\n                .uri(URI.create(\"http:\/\/httpbin.org\/ip\"))\r\n                .timeout(Duration.ofSeconds(30))\r\n                .GET()\r\n                .build();\r\n            \r\n            \/\/ \u53d1\u9001\u8bf7\u6c42\r\n            HttpResponse<String> response = client.send(request, \r\n                HttpResponse.BodyHandlers.ofString());\r\n            \r\n            System.out.println(\"\u72b6\u6001\u7801: \" + response.statusCode());\r\n            System.out.println(\"\u54cd\u5e94\u5185\u5bb9: \" + response.body());\r\n            \r\n        } catch (Exception e) {\r\n            System.err.println(\"\u8bf7\u6c42\u5931\u8d25: \" + e.getMessage());\r\n        }\r\n    }\r\n    \r\n    \/**\r\n     * \u4f7f\u7528 Socket \u7684 SOCKS5 \u4ee3\u7406\uff08\u652f\u6301\u8ba4\u8bc1\uff09\r\n     *\/\r\n    public static void socks5WithSocket() {\r\n        System.out.println(\"\\n2. \u4f7f\u7528 Socket \u7684 SOCKS5 \u4ee3\u7406\uff08\u5e26\u8ba4\u8bc1\uff09:\");\r\n        \r\n        Socket socket = null;\r\n        try {\r\n            \/\/ \u521b\u5efa\u4ee3\u7406\r\n            Proxy proxy = new Proxy(Proxy.Type.SOCKS, \r\n                new InetSocketAddress(PROXY_HOST, PROXY_PORT));\r\n            \r\n            \/\/ \u521b\u5efa Socket \u8fde\u63a5\r\n            socket = new Socket(proxy);\r\n            socket.connect(new InetSocketAddress(\"httpbin.org\", 80), 30000);\r\n            \r\n            \/\/ \u53d1\u9001 HTTP \u8bf7\u6c42\r\n            PrintWriter out = new PrintWriter(socket.getOutputStream(), true);\r\n            BufferedReader in = new BufferedReader(\r\n                new InputStreamReader(socket.getInputStream()));\r\n            \r\n            \/\/ \u6784\u5efa HTTP \u8bf7\u6c42\r\n            String request = \"GET \/ip HTTP\/1.1\\r\\n\" +\r\n                           \"Host: httpbin.org\\r\\n\" +\r\n                           \"User-Agent: Java-SOCKS5-Proxy\\r\\n\" +\r\n                           \"Connection: close\\r\\n\\r\\n\";\r\n            \r\n            out.println(request);\r\n            out.flush();\r\n            \r\n            \/\/ \u8bfb\u53d6\u54cd\u5e94\r\n            String line;\r\n            StringBuilder response = new StringBuilder();\r\n            while ((line = in.readLine()) != null) {\r\n                response.append(line).append(\"\\n\");\r\n            }\r\n            \r\n            System.out.println(\"\u54cd\u5e94\u5185\u5bb9:\\n\" + response.toString());\r\n            \r\n        } catch (Exception e) {\r\n            System.err.println(\"Socket \u8bf7\u6c42\u5931\u8d25: \" + e.getMessage());\r\n        } finally {\r\n            if (socket != null) {\r\n                try {\r\n                    socket.close();\r\n                } catch (IOException e) {\r\n                    e.printStackTrace();\r\n                }\r\n            }\r\n        }\r\n    }\r\n    \r\n    \/**\r\n     * SOCKS5 \u4ee3\u7406\u81ea\u5b9a\u4e49\u8bf7\u6c42\r\n     *\/\r\n    public static void socks5WithCustomRequest() {\r\n        System.out.println(\"\\n3. SOCKS5 \u4ee3\u7406\u81ea\u5b9a\u4e49\u8bf7\u6c42:\");\r\n        \r\n        try {\r\n            \/\/ \u8bbe\u7f6e SOCKS5 \u4ee3\u7406\u7cfb\u7edf\u5c5e\u6027\r\n            System.setProperty(\"socksProxyHost\", PROXY_HOST);\r\n            System.setProperty(\"socksProxyPort\", String.valueOf(PROXY_PORT));\r\n            \r\n            HttpClient client = HttpClient.newBuilder()\r\n                .connectTimeout(Duration.ofSeconds(30))\r\n                .build();\r\n            \r\n            HttpRequest request = HttpRequest.newBuilder()\r\n                .uri(URI.create(\"https:\/\/httpbin.org\/user-agent\"))\r\n                .header(\"User-Agent\", \"Java-SOCKS5-Proxy-Demo\/1.0\")\r\n                .header(\"Accept\", \"application\/json\")\r\n                .timeout(Duration.ofSeconds(30))\r\n                .GET()\r\n                .build();\r\n            \r\n            HttpResponse<String> response = client.send(request, \r\n                HttpResponse.BodyHandlers.ofString());\r\n            \r\n            System.out.println(\"\u72b6\u6001\u7801: \" + response.statusCode());\r\n            System.out.println(\"\u54cd\u5e94\u5185\u5bb9: \" + response.body());\r\n            \r\n        } catch (Exception e) {\r\n            System.err.println(\"\u81ea\u5b9a\u4e49\u8bf7\u6c42\u5931\u8d25: \" + e.getMessage());\r\n        } finally {\r\n            \/\/ \u6e05\u7406\u7cfb\u7edf\u5c5e\u6027\r\n            System.clearProperty(\"socksProxyHost\");\r\n            System.clearProperty(\"socksProxyPort\");\r\n        }\r\n    }\r\n}<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9538d52 elementor-widget elementor-widget-heading\" data-id=\"9538d52\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h6 class=\"elementor-heading-title elementor-size-default\">2. HTTP\u4ee3\u7406\u793a\u4f8b<\/h6>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-29c2ca2 elementor-widget elementor-widget-code-highlight\" data-id=\"29c2ca2\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-java \">\n\t\t\t\t<code readonly=\"true\" class=\"language-java\">\n\t\t\t\t\t<xmp>import java.io.*;\r\nimport java.net.*;\r\nimport java.net.http.HttpClient;\r\nimport java.net.http.HttpRequest;\r\nimport java.net.http.HttpResponse;\r\nimport java.time.Duration;\r\nimport java.util.Base64;\r\n\r\npublic class HttpProxyDemo {\r\n    \r\n    \/\/ \u4ee3\u7406\u914d\u7f6e\r\n    private static final String PROXY_HOST = \"proxy.ipnut.com\";\r\n    private static final int PROXY_PORT = 28001;\r\n    private static final String PROXY_USERNAME = \"ipnut\";\r\n    private static final String PROXY_PASSWORD = \"123456789\";\r\n    \r\n    public static void main(String[] args) {\r\n        System.out.println(\"=== HTTP \u4ee3\u7406\u6f14\u793a ===\\n\");\r\n        \r\n        httpProxyWithHttpClient();\r\n        httpProxyWithAuthenticator();\r\n        httpProxyWithSocket();\r\n        httpProxyMultipleRequests();\r\n    }\r\n    \r\n    \/**\r\n     * \u4f7f\u7528 HttpClient \u7684 HTTP \u4ee3\u7406\r\n     *\/\r\n    public static void httpProxyWithHttpClient() {\r\n        System.out.println(\"1. \u4f7f\u7528 HttpClient \u7684 HTTP \u4ee3\u7406:\");\r\n        \r\n        try {\r\n            \/\/ \u521b\u5efa HTTP \u4ee3\u7406\r\n            Proxy proxy = new Proxy(Proxy.Type.HTTP, \r\n                new InetSocketAddress(PROXY_HOST, PROXY_PORT));\r\n            \r\n            \/\/ \u521b\u5efa HttpClient \u4f7f\u7528 HTTP \u4ee3\u7406\r\n            HttpClient client = HttpClient.newBuilder()\r\n                .proxy(ProxySelector.of(new InetSocketAddress(PROXY_HOST, PROXY_PORT)))\r\n                .connectTimeout(Duration.ofSeconds(30))\r\n                .build();\r\n            \r\n            HttpRequest request = HttpRequest.newBuilder()\r\n                .uri(URI.create(\"http:\/\/httpbin.org\/ip\"))\r\n                .timeout(Duration.ofSeconds(30))\r\n                .GET()\r\n                .build();\r\n            \r\n            HttpResponse<String> response = client.send(request, \r\n                HttpResponse.BodyHandlers.ofString());\r\n            \r\n            System.out.println(\"\u72b6\u6001\u7801: \" + response.statusCode());\r\n            System.out.println(\"\u54cd\u5e94\u5185\u5bb9: \" + response.body());\r\n            \r\n        } catch (Exception e) {\r\n            System.err.println(\"\u8bf7\u6c42\u5931\u8d25: \" + e.getMessage());\r\n        }\r\n    }\r\n    \r\n    \/**\r\n     * \u4f7f\u7528 Authenticator \u7684 HTTP \u4ee3\u7406\u8ba4\u8bc1\r\n     *\/\r\n    public static void httpProxyWithAuthenticator() {\r\n        System.out.println(\"\\n2. \u4f7f\u7528 Authenticator \u7684 HTTP \u4ee3\u7406\u8ba4\u8bc1:\");\r\n        \r\n        try {\r\n            \/\/ \u8bbe\u7f6e\u4ee3\u7406\u8ba4\u8bc1\r\n            Authenticator.setDefault(new Authenticator() {\r\n                @Override\r\n                protected PasswordAuthentication getPasswordAuthentication() {\r\n                    if (getRequestorType() == Authenticator.RequestorType.PROXY) {\r\n                        return new PasswordAuthentication(PROXY_USERNAME, \r\n                            PROXY_PASSWORD.toCharArray());\r\n                    }\r\n                    return null;\r\n                }\r\n            });\r\n            \r\n            \/\/ \u8bbe\u7f6e\u7cfb\u7edf\u4ee3\u7406\r\n            System.setProperty(\"http.proxyHost\", PROXY_HOST);\r\n            System.setProperty(\"http.proxyPort\", String.valueOf(PROXY_PORT));\r\n            System.setProperty(\"https.proxyHost\", PROXY_HOST);\r\n            System.setProperty(\"https.proxyPort\", String.valueOf(PROXY_PORT));\r\n            \r\n            HttpClient client = HttpClient.newBuilder()\r\n                .connectTimeout(Duration.ofSeconds(30))\r\n                .build();\r\n            \r\n            HttpRequest request = HttpRequest.newBuilder()\r\n                .uri(URI.create(\"http:\/\/httpbin.org\/ip\"))\r\n                .timeout(Duration.ofSeconds(30))\r\n                .GET()\r\n                .build();\r\n            \r\n            HttpResponse<String> response = client.send(request, \r\n                HttpResponse.BodyHandlers.ofString());\r\n            \r\n            System.out.println(\"\u72b6\u6001\u7801: \" + response.statusCode());\r\n            System.out.println(\"\u54cd\u5e94\u5185\u5bb9: \" + response.body());\r\n            \r\n        } catch (Exception e) {\r\n            System.err.println(\"\u8ba4\u8bc1\u8bf7\u6c42\u5931\u8d25: \" + e.getMessage());\r\n        } finally {\r\n            \/\/ \u6e05\u7406\r\n            Authenticator.setDefault(null);\r\n            System.clearProperty(\"http.proxyHost\");\r\n            System.clearProperty(\"http.proxyPort\");\r\n            System.clearProperty(\"https.proxyHost\");\r\n            System.clearProperty(\"https.proxyPort\");\r\n        }\r\n    }\r\n    \r\n    \/**\r\n     * \u4f7f\u7528 Socket \u7684 HTTP \u4ee3\u7406\uff08\u624b\u52a8\u8ba4\u8bc1\uff09\r\n     *\/\r\n    public static void httpProxyWithSocket() {\r\n        System.out.println(\"\\n3. \u4f7f\u7528 Socket \u7684 HTTP \u4ee3\u7406\uff08\u624b\u52a8\u8ba4\u8bc1\uff09:\");\r\n        \r\n        Socket socket = null;\r\n        try {\r\n            \/\/ \u8fde\u63a5\u5230\u4ee3\u7406\u670d\u52a1\u5668\r\n            socket = new Socket(PROXY_HOST, PROXY_PORT);\r\n            \r\n            \/\/ \u6784\u5efa\u4ee3\u7406\u8ba4\u8bc1\u4fe1\u606f\r\n            String auth = PROXY_USERNAME + \":\" + PROXY_PASSWORD;\r\n            String encodedAuth = Base64.getEncoder().encodeToString(auth.getBytes());\r\n            \r\n            \/\/ \u53d1\u9001 CONNECT \u8bf7\u6c42\u5230\u4ee3\u7406\r\n            PrintWriter out = new PrintWriter(socket.getOutputStream(), true);\r\n            BufferedReader in = new BufferedReader(\r\n                new InputStreamReader(socket.getInputStream()));\r\n            \r\n            String connectRequest = \"CONNECT httpbin.org:80 HTTP\/1.1\\r\\n\" +\r\n                                  \"Host: httpbin.org:80\\r\\n\" +\r\n                                  \"Proxy-Authorization: Basic \" + encodedAuth + \"\\r\\n\" +\r\n                                  \"Connection: keep-alive\\r\\n\\r\\n\";\r\n            \r\n            out.print(connectRequest);\r\n            out.flush();\r\n            \r\n            \/\/ \u8bfb\u53d6\u4ee3\u7406\u54cd\u5e94\r\n            String line;\r\n            while ((line = in.readLine()) != null) {\r\n                if (line.isEmpty()) break;\r\n                System.out.println(\"\u4ee3\u7406\u54cd\u5e94: \" + line);\r\n            }\r\n            \r\n            \/\/ \u53d1\u9001\u5b9e\u9645 HTTP \u8bf7\u6c42\r\n            String httpRequest = \"GET \/ip HTTP\/1.1\\r\\n\" +\r\n                               \"Host: httpbin.org\\r\\n\" +\r\n                               \"User-Agent: Java-HTTP-Proxy-Demo\\r\\n\" +\r\n                               \"Connection: close\\r\\n\\r\\n\";\r\n            \r\n            out.print(httpRequest);\r\n            out.flush();\r\n            \r\n            \/\/ \u8bfb\u53d6 HTTP \u54cd\u5e94\r\n            StringBuilder response = new StringBuilder();\r\n            while ((line = in.readLine()) != null) {\r\n                response.append(line).append(\"\\n\");\r\n            }\r\n            \r\n            System.out.println(\"\u54cd\u5e94\u5185\u5bb9:\\n\" + response.toString());\r\n            \r\n        } catch (Exception e) {\r\n            System.err.println(\"Socket \u4ee3\u7406\u8bf7\u6c42\u5931\u8d25: \" + e.getMessage());\r\n        } finally {\r\n            if (socket != null) {\r\n                try {\r\n                    socket.close();\r\n                } catch (IOException e) {\r\n                    e.printStackTrace();\r\n                }\r\n            }\r\n        }\r\n    }\r\n    \r\n    \/**\r\n     * HTTP \u4ee3\u7406\u591a\u8bf7\u6c42\u6f14\u793a\r\n     *\/\r\n    public static void httpProxyMultipleRequests() {\r\n        System.out.println(\"\\n4. HTTP \u4ee3\u7406\u591a\u8bf7\u6c42\u6f14\u793a:\");\r\n        \r\n        try {\r\n            \/\/ \u8bbe\u7f6e\u4ee3\u7406\r\n            System.setProperty(\"http.proxyHost\", PROXY_HOST);\r\n            System.setProperty(\"http.proxyPort\", String.valueOf(PROXY_PORT));\r\n            \r\n            \/\/ \u8bbe\u7f6e\u8ba4\u8bc1\r\n            Authenticator.setDefault(new Authenticator() {\r\n                @Override\r\n                protected PasswordAuthentication getPasswordAuthentication() {\r\n                    return new PasswordAuthentication(PROXY_USERNAME, \r\n                        PROXY_PASSWORD.toCharArray());\r\n                }\r\n            });\r\n            \r\n            HttpClient client = HttpClient.newBuilder()\r\n                .connectTimeout(Duration.ofSeconds(30))\r\n                .build();\r\n            \r\n            String[] testUrls = {\r\n                \"http:\/\/httpbin.org\/ip\",\r\n                \"http:\/\/httpbin.org\/user-agent\",\r\n                \"http:\/\/httpbin.org\/headers\"\r\n            };\r\n            \r\n            for (int i = 0; i < testUrls.length; i++) {\r\n                System.out.println(\"\\n\u8bf7\u6c42 \" + (i + 1) + \": \" + testUrls[i]);\r\n                \r\n                HttpRequest request = HttpRequest.newBuilder()\r\n                    .uri(URI.create(testUrls[i]))\r\n                    .header(\"User-Agent\", \"Java-HTTP-Proxy-Multi\/1.0\")\r\n                    .timeout(Duration.ofSeconds(30))\r\n                    .GET()\r\n                    .build();\r\n                \r\n                HttpResponse<String> response = client.send(request, \r\n                    HttpResponse.BodyHandlers.ofString());\r\n                \r\n                System.out.println(\"\u72b6\u6001\u7801: \" + response.statusCode());\r\n                System.out.println(\"\u54cd\u5e94\u5185\u5bb9: \" + response.body().substring(0, \r\n                    Math.min(200, response.body().length())) + \"...\");\r\n                \r\n                Thread.sleep(1000); \/\/ \u907f\u514d\u8bf7\u6c42\u8fc7\u5feb\r\n            }\r\n            \r\n        } catch (Exception e) {\r\n            System.err.println(\"\u591a\u8bf7\u6c42\u5931\u8d25: \" + e.getMessage());\r\n        } finally {\r\n            \/\/ \u6e05\u7406\r\n            Authenticator.setDefault(null);\r\n            System.clearProperty(\"http.proxyHost\");\r\n            System.clearProperty(\"http.proxyPort\");\r\n        }\r\n    }\r\n}<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-629da98 elementor-widget elementor-widget-heading\" data-id=\"629da98\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h6 class=\"elementor-heading-title elementor-size-default\">3. \u4ee3\u7406\u6d4b\u8bd5\u5de5\u5177<\/h6>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-dfb40d6 elementor-widget elementor-widget-code-highlight\" data-id=\"dfb40d6\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-java \">\n\t\t\t\t<code readonly=\"true\" class=\"language-java\">\n\t\t\t\t\t<xmp>import java.net.*;\r\nimport java.net.http.HttpClient;\r\nimport java.net.http.HttpRequest;\r\nimport java.net.http.HttpResponse;\r\nimport java.time.Duration;\r\n\r\npublic class ProxyTestTool {\r\n    \r\n    private static final String PROXY_HOST = \"proxy.ipnut.com\";\r\n    private static final int PROXY_PORT = 28001;\r\n    private static final String PROXY_USERNAME = \"ipnut\";\r\n    private static final String PROXY_PASSWORD = \"123456789\";\r\n    \r\n    public static void main(String[] args) {\r\n        System.out.println(\"=== \u4ee3\u7406\u6d4b\u8bd5\u5de5\u5177 ===\\n\");\r\n        \r\n        testSocks5Proxy();\r\n        testHttpProxy();\r\n    }\r\n    \r\n    \/**\r\n     * \u6d4b\u8bd5 SOCKS5 \u4ee3\u7406\r\n     *\/\r\n    public static void testSocks5Proxy() {\r\n        System.out.println(\"\u6d4b\u8bd5 SOCKS5 \u4ee3\u7406:\");\r\n        \r\n        try {\r\n            \/\/ \u8bbe\u7f6e SOCKS5 \u4ee3\u7406\r\n            System.setProperty(\"socksProxyHost\", PROXY_HOST);\r\n            System.setProperty(\"socksProxyPort\", String.valueOf(PROXY_PORT));\r\n            \r\n            HttpClient client = HttpClient.newBuilder()\r\n                .connectTimeout(Duration.ofSeconds(15))\r\n                .build();\r\n            \r\n            HttpRequest request = HttpRequest.newBuilder()\r\n                .uri(URI.create(\"http:\/\/httpbin.org\/ip\"))\r\n                .timeout(Duration.ofSeconds(15))\r\n                .GET()\r\n                .build();\r\n            \r\n            HttpResponse<String> response = client.send(request, \r\n                HttpResponse.BodyHandlers.ofString());\r\n            \r\n            System.out.println(\"\u2705 SOCKS5 \u4ee3\u7406\u8fde\u63a5\u6210\u529f\");\r\n            System.out.println(\"   \u72b6\u6001\u7801: \" + response.statusCode());\r\n            System.out.println(\"   \u54cd\u5e94: \" + response.body());\r\n            \r\n        } catch (Exception e) {\r\n            System.err.println(\"\u274c SOCKS5 \u4ee3\u7406\u8fde\u63a5\u5931\u8d25: \" + e.getMessage());\r\n        } finally {\r\n            System.clearProperty(\"socksProxyHost\");\r\n            System.clearProperty(\"socksProxyPort\");\r\n        }\r\n    }\r\n    \r\n    \/**\r\n     * \u6d4b\u8bd5 HTTP \u4ee3\u7406\r\n     *\/\r\n    public static void testHttpProxy() {\r\n        System.out.println(\"\\n\u6d4b\u8bd5 HTTP \u4ee3\u7406:\");\r\n        \r\n        try {\r\n            \/\/ \u8bbe\u7f6e HTTP \u4ee3\u7406\u548c\u8ba4\u8bc1\r\n            System.setProperty(\"http.proxyHost\", PROXY_HOST);\r\n            System.setProperty(\"http.proxyPort\", String.valueOf(PROXY_PORT));\r\n            \r\n            Authenticator.setDefault(new Authenticator() {\r\n                @Override\r\n                protected PasswordAuthentication getPasswordAuthentication() {\r\n                    return new PasswordAuthentication(PROXY_USERNAME, \r\n                        PROXY_PASSWORD.toCharArray());\r\n                }\r\n            });\r\n            \r\n            HttpClient client = HttpClient.newBuilder()\r\n                .connectTimeout(Duration.ofSeconds(15))\r\n                .build();\r\n            \r\n            HttpRequest request = HttpRequest.newBuilder()\r\n                .uri(URI.create(\"http:\/\/httpbin.org\/ip\"))\r\n                .timeout(Duration.ofSeconds(15))\r\n                .GET()\r\n                .build();\r\n            \r\n            HttpResponse<String> response = client.send(request, \r\n                HttpResponse.BodyHandlers.ofString());\r\n            \r\n            System.out.println(\"\u2705 HTTP \u4ee3\u7406\u8fde\u63a5\u6210\u529f\");\r\n            System.out.println(\"   \u72b6\u6001\u7801: \" + response.statusCode());\r\n            System.out.println(\"   \u54cd\u5e94: \" + response.body());\r\n            \r\n        } catch (Exception e) {\r\n            System.err.println(\"\u274c HTTP \u4ee3\u7406\u8fde\u63a5\u5931\u8d25: \" + e.getMessage());\r\n        } finally {\r\n            Authenticator.setDefault(null);\r\n            System.clearProperty(\"http.proxyHost\");\r\n            System.clearProperty(\"http.proxyPort\");\r\n        }\r\n    }\r\n}<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6cd7641 elementor-widget elementor-widget-heading\" data-id=\"6cd7641\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h6 class=\"elementor-heading-title elementor-size-default\">4. \u7f16\u8bd1\u548c\u8fd0\u884c<\/h6>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b145238 elementor-widget elementor-widget-code-highlight\" data-id=\"b145238\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-java \">\n\t\t\t\t<code readonly=\"true\" class=\"language-java\">\n\t\t\t\t\t<xmp># \u7f16\u8bd1\u6240\u6709Java\u6587\u4ef6\r\njavac *.java\r\n\r\n# \u6216\u8005\u5206\u522b\u7f16\u8bd1\r\njavac Socks5ProxyDemo.java\r\njavac HttpProxyDemo.java\r\njavac ProxyTestTool.java\r\n\r\n# \u8fd0\u884cSOCKS5\u4ee3\u7406\u6f14\u793a\r\njava Socks5ProxyDemo\r\n\r\n# \u8fd0\u884cHTTP\u4ee3\u7406\u6f14\u793a\r\njava HttpProxyDemo\r\n\r\n# \u8fd0\u884c\u4ee3\u7406\u6d4b\u8bd5\u5de5\u5177\r\njava ProxyTestTool<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>\u901a\u8fc7Java\u8bed\u8a00\u914d\u7f6eIPNut \u4ee3\u7406\uff1a  [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"doc_category":[43],"doc_tag":[112,61,114,77,88],"class_list":["post-667","docs","type-docs","status-publish","hentry","doc_category-kai-fa-wen-dang","doc_tag-ipv4","doc_tag-ip","doc_tag-isp","doc_tag-static-residential-cn","doc_tag-88"],"year_month":"2026-05","word_count":1253,"total_views":0,"reactions":{"happy":0,"normal":0,"sad":0},"author_info":{"name":"IPNUT","author_nicename":"ipnut","author_url":"https:\/\/help.ipnut.com\/author\/ipnut\/"},"doc_category_info":[{"term_name":"\u5f00\u53d1\u6587\u6863","term_url":"https:\/\/help.ipnut.com\/cn\/docs\/kai-fa-wen-dang\/"}],"doc_tag_info":[{"term_name":"IPv4","term_url":"https:\/\/help.ipnut.com\/cn\/docs-tag\/ipv4\/"},{"term_name":"IP\u4ee3\u7406","term_url":"https:\/\/help.ipnut.com\/cn\/docs-tag\/ip%e4%bb%a3%e7%90%86\/"},{"term_name":"ISP","term_url":"https:\/\/help.ipnut.com\/cn\/docs-tag\/isp\/"},{"term_name":"\u9759\u6001\u4f4f\u5b85","term_url":"https:\/\/help.ipnut.com\/cn\/docs-tag\/static-residential-cn\/"},{"term_name":"\u9759\u6001\u6570\u636e\u4e2d\u5fc3","term_url":"https:\/\/help.ipnut.com\/cn\/docs-tag\/%e9%9d%99%e6%80%81%e6%95%b0%e6%8d%ae%e4%b8%ad%e5%bf%83\/"}],"lang":"cn","translations":{"cn":667,"en":813},"knowledge_base_info":[],"knowledge_base_slug":[],"pll_sync_post":[],"_links":{"self":[{"href":"https:\/\/help.ipnut.com\/wp-json\/wp\/v2\/docs\/667","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/help.ipnut.com\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/help.ipnut.com\/wp-json\/wp\/v2\/types\/docs"}],"author":[{"embeddable":true,"href":"https:\/\/help.ipnut.com\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/help.ipnut.com\/wp-json\/wp\/v2\/comments?post=667"}],"version-history":[{"count":7,"href":"https:\/\/help.ipnut.com\/wp-json\/wp\/v2\/docs\/667\/revisions"}],"predecessor-version":[{"id":688,"href":"https:\/\/help.ipnut.com\/wp-json\/wp\/v2\/docs\/667\/revisions\/688"}],"wp:attachment":[{"href":"https:\/\/help.ipnut.com\/wp-json\/wp\/v2\/media?parent=667"}],"wp:term":[{"taxonomy":"doc_category","embeddable":true,"href":"https:\/\/help.ipnut.com\/wp-json\/wp\/v2\/doc_category?post=667"},{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/help.ipnut.com\/wp-json\/wp\/v2\/doc_tag?post=667"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}