- Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathHttpClientStandard.java
More file actions
Latest commit
77 lines (65 loc) · 2.85 KB
/
Copy pathHttpClientStandard.java
File metadata and controls
77 lines (65 loc) · 2.85 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
packagejava11.httpclient;
importjava.net.URI;
importjava.net.http.HttpClient;
importjava.net.http.HttpRequest;
importjava.net.http.HttpResponse;
importjava.time.Duration;
/**
* Java 11 HTTP Client API (Standardized)
* Demonstrates the finalized HTTP Client API
*/
publicclassHttpClientStandard {
publicstaticvoidmain(String[] args) {
// Create HTTP Client
HttpClientclient = HttpClient.newBuilder()
.connectTimeout(Duration.ofSeconds(10))
.followRedirects(HttpClient.Redirect.NORMAL)
.build();
// GET Request
System.out.println("=== GET Request ===");
HttpRequestgetRequest = HttpRequest.newBuilder()
.uri(URI.create("https://httpbin.org/get"))
.timeout(Duration.ofSeconds(5))
.header("User-Agent", "Java 11 HttpClient")
.GET()
.build();
try {
HttpResponse<String> response = client.send(getRequest,
HttpResponse.BodyHandlers.ofString());
System.out.println("Status Code: " + response.statusCode());
System.out.println("Headers: " + response.headers().firstValue("content-type"));
System.out.println("Body length: " + response.body().length());
} catch (Exceptione) {
System.err.println("Error: " + e.getMessage());
}
// Async Request
System.out.println("\n=== Async Request ===");
client.sendAsync(getRequest, HttpResponse.BodyHandlers.ofString())
.thenApply(HttpResponse::body)
.thenAccept(body -> {
System.out.println("Async response received");
System.out.println("Body preview: " + body.substring(0, Math.min(100, body.length())));
})
.exceptionally(ex -> {
System.err.println("Async error: " + ex.getMessage());
returnnull;
})
.join();
// POST Request
System.out.println("\n=== POST Request ===");
StringjsonBody = "{\"name\":\"John\",\"age\":30}";
HttpRequestpostRequest = HttpRequest.newBuilder()
.uri(URI.create("https://httpbin.org/post"))
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(jsonBody))
.build();
try {
HttpResponse<String> postResponse = client.send(postRequest,
HttpResponse.BodyHandlers.ofString());
System.out.println("POST Status: " + postResponse.statusCode());
System.out.println("POST Response: " + postResponse.body().substring(0, Math.min(200, postResponse.body().length())));
} catch (Exceptione) {
System.err.println("POST Error: " + e.getMessage());
}
}
}