参考网址:
Java语言代码示例-文档中心-青果网络代理IP_Java语言代码示例https://www.qg.net/doc/1698.html
添加依赖:
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>4.9.3</version>
</dependency>
请求示例:
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.Proxy;
public class OkHttpProxyExample {
private static String proxyIp = "Proxy Ip"; //必填:代理服务Ip
private static Integer proxyPort = ****; //必填:代理端口
private static String authKey = "key"; //可选:你的用户名
private static String password = "auth pwd"; //可选:你的鉴权密码
public static void main(String[] args) throws IOException {
// 创建代理
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("proxy_host", proxyPort));
// 创建OkHttpClient并设置代理
OkHttpClient client = new OkHttpClient.Builder()
.proxy(proxy)
//若有鉴权方式:可添加一下配置,反之忽略此步骤
.proxyAuthenticator((route, response) -> {
String credential = Credentials.basic(authKey, password);
return response.request().newBuilder().header("Proxy-Authorization", credential).build();
})
.build();
// 创建请求
Request request = new Request.Builder()
.url("需访问目标网址")
.build();
// 发送请求
Response response = client.newCall(request).execute();
// 处理响应
System.out.println(response.body().string());
}
}
使用中以下异常报错:
java.io.IOException: unexpected end of stream on null
解决方法:
1、检查更新okHttp 依赖版本(低版本存在兼容问题);
2、代理服务ip 是否可以正常访问;
3、导入Response包是否正确;