Java原生代码使用HTTP代理

java 文章 2022-02-23 22:30 651 0 全屏看文

AI助手支持GPT4.0

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.Authenticator;
import java.net.InetSocketAddress;
import java.net.PasswordAuthentication;
import java.net.Proxy;
import java.net.URL;
import java.net.URLConnection;
import java.nio.charset.StandardCharsets;

/**
 * 
 * @author librabin
 *
 */
public class ClientProxyBasicHttp {

	public static void main(String args[]) throws Exception {
		// 目标地址
		String targetUrl = "http://www.sanshu.cn";

		// 代理服务器
		String proxyHost = "xxx";
		int proxyPort = 0;

		// http代理: Proxy.Type.HTTP, socks代理: Proxy.Type.SOCKS
		Proxy.Type proxyType = Proxy.Type.HTTP;
		
		// 代理验证
		String proxyUser = "xxx";
		String proxyPwd = "xxx";

		try {
			// 设置验证
			Authenticator.setDefault(new ProxyAuthenticator(proxyUser, proxyPwd));
			
			// 创建代理服务器
			InetSocketAddress addr = new InetSocketAddress(proxyHost, proxyPort);
			Proxy proxy = new Proxy(proxyType, addr);
			// 访问目标网页
			URL url = new URL(targetUrl);
			URLConnection conn = url.openConnection(proxy);
			// 读取返回数据
			InputStream in = conn.getInputStream();
			// 将返回数据转换成字符串
			System.out.println(IO2String(in));

		} catch (Exception e) {
			e.printStackTrace();
		}

	}

	/**
	 * 将输入流转换成字符串
	 * 
	 * @param inStream
	 * @return
	 * @throws IOException
	 */
	public static String IO2String(InputStream inStream) throws IOException {
		ByteArrayOutputStream result = new ByteArrayOutputStream();
		byte[] buffer = new byte[1024];
		int len;
		while ((len = inStream.read(buffer)) != -1) {
			result.write(buffer, 0, len);
		}
		String str = result.toString(StandardCharsets.UTF_8.name());
		return str;
	}
	
	static class ProxyAuthenticator extends Authenticator {
		private String authUser, authPwd;
		
		public ProxyAuthenticator(String authUser, String authPwd) {
			this.authUser = authUser;
			this.authPwd = authPwd;
		}
		
        public PasswordAuthentication getPasswordAuthentication() {
            return (new PasswordAuthentication(authUser, authPwd.toCharArray()));
        }
    }
}


-EOF-

AI助手支持GPT4.0


国内超级便宜服务器

摸鱼人热门新闻聚合

钻级赞助商 我要加入

开发者在线工具

第三方支付技术请加QQ群

相关文章
【如何优化她】教你如何定位不合理的SQL?并优化她~~~
maven 使用 wagon-maven-plugin 自动编译并发布jar到服务器
Hippo4J v1.3.1 发布,增加 Netty 监控上报、SpringCloud Hystrix 线程池监控等特性
java如何编写增强for循环呢?
泛型的简介说明
随便看看
我的新买的域名被微信拦截?求解决处理? 260
小程序是找别人做的,最近发现各方面数据都不对,有没有可能被人动了手脚? 317
如何入门微信小程序开发? 271
请问获取手机号phonenumber.getPhoneNumber,不能直接调用官方提供的接口吗? 568
小程序零基础,做交友小程序当毕设使用,至少要做到什么程度才算工作量足够?私聊或者说即时通讯难做吗? 443
小程序开发中,页面自动获取input焦点,测试版正常,但发布到正式环境就失效了? 869
公众号自定义菜单绑定小程序保存不了? 446
购买的域名,最近建站,发现域名被微信拦截?麻烦解除拦截 323
在视频号设置服务菜单打开小程序,小程序APPID与页面路径都是对的,但视频号打开却说页面不存在? 578
会做小程序但是不懂运营怎么办? 305