oktatas:programozas:java:java_rest_api_kliens:gson_es_httpclient
Tartalomjegyzék
Java REST API Gson és HttpClient
- Szerző: Sallai András
- Copyright © 2023, Sallai András
- Licenc: CC BY-SA 4.0
- Web: https://szit.hu
A HttpClient
A java.net.http.HttpClient osztály a Java 11-ben lett bevezetve. Előtte a java.net.HttpUrlConnection osztályt használtuk.
A HttpClient osztály használata rövidebb kódot eredményez.
Szinkron
- App.java
import java.io.IOException; import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; import java.net.http.HttpResponse.BodyHandlers; import java.util.ArrayList; import java.util.Arrays; import com.google.gson.Gson; import com.google.gson.GsonBuilder; public class App { public static void main(String[] args) throws Exception { String text = getEmployees(); printName(text); } public static String getEmployees() throws IOException, InterruptedException { HttpClient client = HttpClient.newHttpClient(); HttpRequest request = HttpRequest.newBuilder() .uri( URI.create("http://[::1]:3000/employees")) .build(); HttpResponse<String> response = client.send(request, BodyHandlers.ofString()); String text = response.body(); return text; } public static void printName(String text) { GsonBuilder builder = new GsonBuilder(); builder.setPrettyPrinting(); Gson gson = builder.create(); Employee[] employeeArray = gson.fromJson(text, Employee[].class); ArrayList<Employee> list = new ArrayList<>(Arrays.asList(employeeArray)); for(Employee employee: list) { System.out.println(employee.name); } } }
Aszinkron
- App.java
import java.io.IOException; import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; import java.net.http.HttpResponse.BodyHandlers; import java.util.ArrayList; import java.util.Arrays; import java.util.concurrent.CompletableFuture; import com.google.gson.Gson; import com.google.gson.GsonBuilder; public class App { public static void main(String[] args) throws Exception { String text = getEmployees().join(); printNames(text); } public static CompletableFuture<String> getEmployees() throws IOException, InterruptedException { HttpClient client = HttpClient.newHttpClient(); HttpRequest request = HttpRequest.newBuilder() .uri( URI.create("http://[::1]:3000/employees")) .build(); return client.sendAsync(request, BodyHandlers.ofString()) .thenApply(HttpResponse::body); } public static void printNames(String text) { GsonBuilder builder = new GsonBuilder(); builder.setPrettyPrinting(); Gson gson = builder.create(); Employee[] employeeArray = gson.fromJson(text, Employee[].class); ArrayList<Employee> list = new ArrayList<>(Arrays.asList(employeeArray)); for(Employee employee: list) { System.out.println(employee.name); } } }
Fejrész beállítása
request.setHeader(HttpHeaders.CONTENT_TYPE,"application/json"); request.setHeader(HttpHeaders.AUTHORIZATION, "Bearer " + token);
import java.net.http.HttpRequest; //... String token = "sdfasdfas"; HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("http://valahol")) .GET() .header("Authorization", "Bearer " + token) .build();
oktatas/programozas/java/java_rest_api_kliens/gson_es_httpclient.txt · Utolsó módosítás: 2023/12/30 11:48 szerkesztette: admin