Java Rest API Request?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

HTTP Requests kann man mit einer HttpClient-Instanz verschicken.

Einfaches Beispiel:

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
  .uri(URI.create("Your URL..."))
  .GET()
  .build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());

Was es für den Request alles an Daten braucht (Authentifizierung, Parameter, u.ä.), sollte in der Dokumentation der von dir genutzten API stehen. Vielleicht gibt es sogar schon eine Client-Bibliothek für Java, die du nutzen kannst.


Kugelfisch647 
Fragesteller
 06.03.2023, 14:00

Erstmal vielen Dank. Es hat jetzt funktioniert, aber ich musste noch ein try/catch um das client.send() machen. So sieht es bei mir jetzt aus:

import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

public class Main {
    public static void main(String[] args) {
        String url = "https://api.domain.de/endpoint";
        String token = "api-key";

        HttpClient client = HttpClient.newHttpClient();
        HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create(url))
                .setHeader("Authorization", "Bearer " + token)
                .GET()
                .build();
        try {
            HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
            String responseBody = response.body();
            System.out.println(responseBody);
        } catch (IOException e) {
            throw new RuntimeException(e);
        } catch (InterruptedException e) {
            throw new RuntimeException(e);
        }
    }
}

Kannst du mir vielleicht noch erklären, wie ich die JSON Antwort am besten weiterverarbeiten kann?

0
regex9  06.03.2023, 14:32
@Kugelfisch647

Im allereinfachsten Fall (z.B. ein JSON-Objekt mit nur einem Property) wäre eine Verwertung mit den Standard-String-Methoden (split, substring, indexOf, ...) nicht völlig abwegig.

Ansonsten kannst du Bibliotheken wie gson oder JSON-Java nutzen.

0