Rufen Sie die REST-API in Java auf
- Überblick über die REST-API in Java
-
Verwenden Sie
GET
- undPOST
-Anforderungen, um die REST-API in Java aufzurufen
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:
- 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.
- Die REST-API kann auch Ressourcen für eine bessere Leistung zwischenspeichern.
- 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.
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