Rufen Sie die REST-API in Java auf

MD Aminul Islam 12 Oktober 2023
  1. Überblick über die REST-API in Java
  2. Verwenden Sie GET- und POST-Anforderungen, um die REST-API in Java aufzurufen
Rufen Sie die REST-API in Java auf

Wenn Sie an einem Programm arbeiten, mit dem Sie eine Verbindung zu einem Server herstellen können, sind Sie möglicherweise mit der REST-API vertraut. Über diese API können Sie sich mit einem bestimmten Server verbinden.

In diesem Artikel erfahren wir mehr über die REST-API, ihre Funktionsweise und ihre wichtigsten Funktionen und wie wir GET- und POST-Anforderungen verwenden können, um die REST-API in Java aufzurufen.

Überblick über die REST-API in Java

Das Wort REST ist definiert als Representational State Transfer. Wie funktioniert es? In diesem System ist Ihr Programm ein Client, der eine Anfrage an den Server senden kann, um einige Daten zu erhalten.

Andererseits empfängt der Server hier diesen Anruf und antwortet dem Client. Dieses Anfrage- und Antwortpaar folgt einem Protokoll, das als HTTP oder Hyper Text Transfer Protocol bekannt ist.

Hauptmerkmale der REST-API

Im Folgenden sind die wichtigsten Funktionen der REST-API aufgeführt:

  1. Das Design der REST-API ist zustandslos, d. h. wenn ein Client und ein Server eine Verbindung herstellen möchten, benötigen sie zusätzliche Informationen, um die Anfrage abzuschließen.
  2. Die REST-API kann auch Ressourcen für eine bessere Leistung zwischenspeichern.
  3. Die REST-API verwendet eine einheitliche Schnittstelle, die es dem Client ermöglicht, mit dem Server in einer bestimmten Sprache zu sprechen.

Verwenden Sie GET- und POST-Anforderungen, um die REST-API in Java aufzurufen

Das GET empfängt eine Darstellung einer spezifizierten Ressource, während POST zum Schreiben von zu verarbeitenden Daten in eine identifizierte Ressource verwendet wird. Lassen Sie uns unten lernen, wie wir sie verwenden können, um die REST-API aufzurufen.

Verwenden Sie die GET-Anfrage

Beispielcode:

// Importing all the necessary packages
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

public class HTTPGet {
  public static void main(String args[]) throws Exception {
    // Providing the website URL
    URL url = new URL("http://example.com");

    // Creating an HTTP connection
    HttpURLConnection MyConn = (HttpURLConnection) url.openConnection();

    // Set the request method to "GET"
    MyConn.setRequestMethod("GET");

    // Collect the response code
    int responseCode = MyConn.getResponseCode();
    System.out.println("GET Response Code :: " + responseCode);

    if (responseCode == MyConn.HTTP_OK) {
      // Create a reader with the input stream reader.
      BufferedReader in = new BufferedReader(new InputStreamReader(MyConn.getInputStream()));
      String inputLine;

      // Create a string buffer
      StringBuffer response = new StringBuffer();

      // Write each of the input line
      while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
      }
      in.close();
      // Show the output
      System.out.println(response.toString());
    } else {
      System.out.println("Error found !!!");
    }
  }
}

Im obigen Beispiel haben wir die am häufigsten verwendete Anfragemethode in HTTP dargestellt, bekannt als GET. Wir haben den Zweck jeder Zeile bereits im Beispielcode geschrieben.

In diesem Beispiel haben wir basierend auf der bereitgestellten URL eine HTTP-Verbindung erstellt und dann die angeforderte Eigenschaft definiert. Danach setzen wir die Request-Methode auf GET.

Dann haben wir mit InputStreamReader einen BufferedReader erstellt, um jede Dokumentzeile zu lesen und zu speichern. Zuletzt drucken wir die Website als Ausgabe.

Ausgang:

GET Response Code :: 200
<!doctype html>
<html>
 <head>
  <title>Example Domain</title>
  <meta charset="utf-8">
  <meta http-equiv="Content-type" content="text/html; charset=utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <style type="text/css">
    body {
        background-color: #f0f0f2;
        margin: 0;
        padding: 0;
        font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
        
    }
    div {
        width: 600px;
        margin: 5em auto;
        padding: 2em;
        background-color: #fdfdff;
        border-radius: 0.5em;
        box-shadow: 2px 3px 7px 2px rgba(0,0,0,0.02);
    }
    a:link, a:visited {
        color: #38488f;
        text-decoration: none;
    }
    @media (max-width: 700px) {
        div {
            margin: 0 auto;
            width: auto;
        }
    }
    </style>
 </head>
 <body>
  <div>
   <h1>Example Domain</h1>
   <p>This domain is for use in illustrative examples in documents. You may use this domain in literature without prior coordination or asking for permission.</p>
   <p><a href="https://www.iana.org/domains/example">More information...</a></p>
  </div>
 </body>
</html>

Verwenden Sie die POST-Anfrage

Beispielcode:

// Importing all the necessary packages
import java.io.*;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

public class HTTPPost {
  public static void main(String[] args) throws MalformedURLException, IOException {
    // Providing the website URL
    URL myUrl = new URL("https://example.com");
    // Creating an HTTP connection
    HttpURLConnection MyConn = (HttpURLConnection) myUrl.openConnection();

    // Set the request method to "POST"
    MyConn.setRequestMethod("POST");
    MyConn.setDoOutput(true);
    // Creating an output stream
    OutputStream out = MyConn.getOutputStream();

    // Defining the sting to post
    String postedString = "This is the posted text !!!!!!";
    out.write(postedString.getBytes());
    // Collect the response code
    int responseCode = MyConn.getResponseCode();

    System.out.print("Value of http created is:" + MyConn.HTTP_CREATED + "\n");

    if (responseCode == MyConn.HTTP_CREATED) {
      System.out.print("This is the response Code: " + responseCode + "\n");
      System.out.print(
          "This is the response Message fromserver: " + MyConn.getResponseMessage() + "\n");
    } else {
      System.out.print("GO HOME, EVERYBODY :( ");
    }
    // Creating an input stream reader
    InputStreamReader in = new InputStreamReader(MyConn.getInputStream());
    // Creating a buffered reader
    BufferedReader buffer = new BufferedReader(in);
    // Creating a string buffer
    StringBuffer fromServer = new StringBuffer();
    String eachLine = null;

    // Writing each line of the document
    while ((eachLine = buffer.readLine()) != null) {
      fromServer.append(eachLine);
      fromServer.append(System.lineSeparator());
    }
    buffer.close();
    // Printing the html document
    System.out.print("Here is our webpage:\n" + fromServer);
  }
}

Ausgang:

Value of http created is:201
GO HOME, EVERYBODY :( Here is our webpage:
<!doctype html>
<html>
 <head>
  <title>Example Domain</title>
  <meta charset="utf-8">
  <meta http-equiv="Content-type" content="text/html; charset=utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <style type="text/css">
    body {
        background-color: #f0f0f2;
        margin: 0;
        padding: 0;
        font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
        
    }
    div {
        width: 600px;
        margin: 5em auto;
        padding: 2em;
        background-color: #fdfdff;
        border-radius: 0.5em;
        box-shadow: 2px 3px 7px 2px rgba(0,0,0,0.02);
    }
    a:link, a:visited {
        color: #38488f;
        text-decoration: none;
    }
    @media (max-width: 700px) {
        div {
            margin: 0 auto;
            width: auto;
        }
    }
    </style>
 </head>
 <body>
  <div>
   <h1>Example Domain</h1>
   <p>This domain is for use in illustrative examples in documents. You may use this domain in literature without prior coordination or asking for permission.</p>
   <p><a href="https://www.iana.org/domains/example">More information...</a></p>
  </div>
 </body>
</html>

Im obigen Beispiel haben wir eine andere am häufigsten verwendete Anfragemethode in HTTP, bekannt als POST, veranschaulicht. Im Beispiel haben wir basierend auf der bereitgestellten URL eine HTTP-Verbindung erstellt und dann die angeforderte Eigenschaft definiert.

Danach setzen wir die Anfragemethode auf POST. Dann setzen wir einen OutputStream, um den String zu posten; danach haben wir mit dem response code gearbeitet.

Als nächstes haben wir mit dem InputStreamReader einen BufferedReader erstellt. Dann haben wir einen StringBuffer erstellt, um alle Dokumente zu speichern. Hoffentlich haben Sie gelernt, wie Sie die REST-API mit GET/POST-Anforderungen in Java aufrufen.

MD Aminul Islam avatar MD Aminul Islam avatar

Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.

LinkedIn