注册
登录
 文档中心 产品介绍 开发指南 API接口 代码样例 使用帮助
Java使用jsoup调用Http代理IP的代码样例
站大爷 官方 2024-01-20 1552 浏览

温馨提示:

1.  此代码样例同时支持访问http和https网页

2.  使用用户名密码访问的情况下,每次请求httpclient会发送两次进行认证从而导致请求耗时增加,建议使用终端IP授权访问

3.  若有多个用户名、密码进行认证,需要在代码中须添加AuthCacheValue.setAuthCache(new AuthCacheImpl());

4.  依赖包下载:

     jsoup-1.13.1.jar


import java.io.IOException;
import java.net.Authenticator;
import java.net.InetSocketAddress;
import java.net.PasswordAuthentication;
import java.net.Proxy;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;

public class TestProxyJsoup {
	// 用户名密码授权
	final static String ProxyUser = "username";
	final static String ProxyPass = "password";

	// 代理IP、端口号
	final static String ProxyHost = "159.138.141.125";
	final static Integer ProxyPort = 18916;

	public static String getUrlProxyContent(String url) {
		Authenticator.setDefault(new Authenticator() {
			public PasswordAuthentication getPasswordAuthentication() {
				return new PasswordAuthentication(ProxyUser, ProxyPass.toCharArray());
			}
		});

		Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(ProxyHost, ProxyPort));

		try {
		// 此处自己处理异常、其他参数等
			Document doc = Jsoup.connect(url).followRedirects(false).timeout(3000).proxy(proxy).get();
			if (doc != null) {
				System.out.println(doc.body().html());
			}
		} catch (IOException e) {
			e.printStackTrace();
		}

		return null;
	}

	public static void main(String[] args) throws Exception {
	// 目标网站
        	String targetUrl = "https://example.com";

		// JDK 8u111版本后,目标页面为HTTPS协议,启用proxy用户密码鉴权
		System.setProperty("jdk.http.auth.tunneling.disabledSchemes", "");

		getUrlProxyContent(targetUrl);
	}
}


立即注册站大爷用户,免费试用全部产品
立即注册站大爷用户,免费试用全部产品