# java原生 jdk11
https://openjdk.org/groups/net/httpclient/intro-incubating.html
https://openjdk.org/jeps/110
核心类有
HttpRequest
HttpRequest.Builder
HttpHeaders
HttpClient
HttpResponse
上述所有类都在包 `package java.net.http;
`下。
@Override
public void print(String url) {
HttpClient httpClient = HttpClient.newHttpClient();
HttpRequest.Builder builder = HttpRequest.newBuilder();
builder.GET();
builder.uri(java.net.URI.create(url));
builder.header("User-Agent","Java 11 HttpClient Bot");
builder.header("Authorization","Bearer 12313213123");
HttpRequest httpRequest = builder.build();
try {
HttpResponse<String> result = httpClient.send(httpRequest, HttpResponse.BodyHandlers.ofString());
HttpHeaders resultHeaders = result.headers();
String body = result.body();
System.out.println("HttpHeaders: " + resultHeaders);
}catch (Exception e){
e.printStackTrace();
}
}
## 设置代理
builder.proxy(ProxySelector.of(new InetSocketAddress("www-proxy.com", 8080)))
//只支持http代理,不支持socks
# OkHttp
https://square.github.io/okhttp/#releases
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>4.11.0</version>
</dependency>
@Override
public void print(String url) {
OkHttpClient httpClient = new OkHttpClient.Builder()
.proxy(new Proxy(Proxy.Type.SOCKS,new java.net.InetSocketAddress("localhost",1080)))
.build();
Request request = new Request.Builder()
.get()
.url(url)
.build();
try(Response response = httpClient.newCall(request).execute()){
System.out.println("HttpHeaders: " + response.headers());
System.out.println("HttpBody: " + response.body().string());
}catch (Exception e){
e.printStackTrace();
}
}