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()));
}
}
}