帮助文档>操作指南>调用方式 > 代码示例-Java

代码示例-Java

发布时间:2022-06-07 23:22

此示例是通过修改JVM中的网络设置来达到代理的效果,如果程序员有些请求不需要代理可以在代理请求之后再将JVM配置项改回默认项。支持http、https、socks5代理

package com.qg;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.*;
public class ProxyClient {
      //用户key
      private static String user = "key";
      //用户密码
      private static String password = "proxy_password";
      //获取到的代理IP
      private static String proxyIP = "127.0.0.1";
      //获取到的代理端口
      private static String proxyPort = "1080";
      public static void main(String[] args) {
            // 下面http、https代理和socks5代理只需要设置一个就可以
            // 使用http代理和https代理
            System.setProperty("http.proxySet", "true");
            // 发起http请求时使用的代理服务器配置
            System.setProperty("http.proxyHost", proxyIP);
            System.setProperty("http.proxyPort", proxyPort);
            // 发起https请求时使用的代理服务器配置
            System.setProperty("https.proxyHost", proxyIP);
            System.setProperty("https.proxyPort", proxyPort);
            // 这行代码是身份验证的关键配置,不然身份验证不起作用
            System.setProperty("jdk.http.auth.tunneling.disabledSchemes", "");
            System.setProperty("jdk.http.auth.proxying.disabledSchemes", "");
            // 身份验证
            Authenticator.setDefault(
                  new Authenticator() {
                      public PasswordAuthentication getPasswordAuthentication() {
                          return new PasswordAuthentication(
                                  user, password.toCharArray());
                      }
                  }
          );
          sendRequest("http://httpbin.org/get");
          sendRequest("https://httpbin.org/get");
      }
      public static void sendRequest(String urlStr) {
          URL url;
        &nbs; BufferedReader in;
          StringBuilder result = new StringBuilder();
          try {
              url = new URL(urlStr);
              HttpURLConnection conn = (HttpURLConnection) url.openConnection();
              conn.connect();
              in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
              String line;
              while ((line = in.readLine()) != null) {
                  result.append(line);
             }
              conn.disconnect();
              System.out.println("http status code:"   conn.getResponseCode());
              System.out.println("body: "   result);
          } catch (IOException e) {
              e.printStackTrace();
         }
      }
  }

如需使用socks5代理可以将main函数中的代码替换为:


// 使用socks5代理配置
System.setProperty("socksProxyHost", proxyIP);
System.setProperty("socksProxyPort", proxyPort);
System.setProperty("socksProxyVersion", "5");
System.setProperty("java.net.socks.username", user);
System.setProperty("java.net.socks.password", password);
本文导读

客户热线:1830934534