Heim Java javaLernprogramm Verwendung von Apache HttpClient für HTTP-Anfragen in der Java-API-Entwicklung

Verwendung von Apache HttpClient für HTTP-Anfragen in der Java-API-Entwicklung

Jun 18, 2023 am 09:27 AM
http请求 java api apache httpclient

Mit der kontinuierlichen Weiterentwicklung des Internets ist das HTTP-Protokoll zu einem der Eckpfeiler der modernen Netzwerkkommunikation geworden. Bei der Java-Programmierung können Sie mithilfe der Apache HttpClient-Bibliothek sehr bequem HTTP-Anforderungsvorgänge ausführen. In diesem Artikel wird erläutert, wie Sie Apache HttpClient verwenden, um HTTP-Anfragen in der Java-API-Entwicklung zu stellen.

  1. Vorbereitung

Bevor Sie beginnen, müssen Sie die Apache HttpClient-Bibliothek herunterladen und als Abhängigkeit des Projekts hinzufügen. Apache HttpClient ist eine Open-Source-Java-HTTP-Clientbibliothek, auf die über Tools wie Maven und Gradle verwiesen werden kann.

Das Folgende ist ein Beispiel für die Verwendung von Maven zum Referenzieren von Apache HttpClient:

<dependencies>
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.5.13</version>
    </dependency>
</dependencies>
Nach dem Login kopieren

Nach der Einführung der Bibliothek können Sie mit der Durchführung von HTTP-Anforderungsvorgängen beginnen.

  1. Senden einer GET-Anfrage

Das Senden einer GET-Anfrage mit HttpClient ist sehr einfach. Das folgende Beispiel zeigt, wie eine GET-Anfrage über HttpClient gesendet und der Antwortinhalt ausgedruckt wird:

CloseableHttpClient httpClient = HttpClients.createDefault();
HttpGet httpGet = new HttpGet("https://www.baidu.com");
try (CloseableHttpResponse response = httpClient.execute(httpGet)) {
    HttpEntity entity = response.getEntity();
    if (entity != null) {
        String result = EntityUtils.toString(entity, "UTF-8");
        System.out.println(result);
    }
} catch (IOException e) {
    e.printStackTrace();
}
Nach dem Login kopieren

Der obige Code sendet eine GET-Anfrage an Baidu und gibt dann den Antwortinhalt aus. In diesem Code erstellen wir eine CloseableHttpClient-Clientinstanz, erstellen dann eine GET-Anfrage mit dem HttpGet-Objekt und führen die Anfrage aus. Die Entität wird in der Antwort abgerufen und dann zur Ausgabe in einen String umgewandelt.

  1. POST-Anfrage senden

Wenn Sie HttpClient zum Senden einer POST-Anfrage verwenden, können Sie wählen, ob Sie ein UrlEncodedFormEntity-Objekt oder ein MultipartEntityBuilder-Objekt verwenden möchten, um die Anforderungsparameter einzuschließen.

Das Folgende ist ein Beispiel für die Verwendung des UrlEncodedFormEntity-Objekts:

CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost("https://www.baidu.com");
List<NameValuePair> params = new ArrayList<>();
params.add(new BasicNameValuePair("username", "johndoe"));
params.add(new BasicNameValuePair("password", "password123"));
try {
    httpPost.setEntity(new UrlEncodedFormEntity(params, "UTF-8"));
} catch (UnsupportedEncodingException e) {
    e.printStackTrace();
}
try (CloseableHttpResponse response = httpClient.execute(httpPost)) {
    HttpEntity entity = response.getEntity();
    if (entity != null) {
        String result = EntityUtils.toString(entity, "UTF-8");
        System.out.println(result);
    }
} catch (IOException e) {
    e.printStackTrace();
}
Nach dem Login kopieren

Der obige Code sendet eine POST-Anfrage an Baidu und fügt die Parameter in den Anfragetext ein. In diesem Beispiel verwenden wir ein UrlEncodedFormEntity-Objekt, um die Anforderungsparameter zu enthalten und sie als Entitäten für die POST-Anfrage festzulegen. Die Entität wird in der Antwort abgerufen und dann zur Ausgabe in einen String umgewandelt.

  1. Dateien senden

Wenn Sie Dateien senden müssen, sollten Sie das MultipartEntityBuilder-Objekt verwenden. Hier ist ein Beispiel für eine enthaltene Datei:

CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost("http://localhost:8080/upload");
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.addBinaryBody("file", new File("example.txt"));
httpPost.setEntity(builder.build());
try (CloseableHttpResponse response = httpClient.execute(httpPost)) {
    HttpEntity entity = response.getEntity();
    if (entity != null) {
        String result = EntityUtils.toString(entity, "UTF-8");
        System.out.println(result);
    }
} catch (IOException e) {
    e.printStackTrace();
}
Nach dem Login kopieren

Der obige Code überträgt eine Datei mit dem Namen example.txt an localhost:8080. In diesem Beispiel verwenden wir ein MultipartEntityBuilder-Objekt und fügen die Datei als binären Inhalt hinzu. Die Entität wird in der Antwort abgerufen und dann zur Ausgabe in einen String umgewandelt.

  1. Fügen Sie beim Senden einer Anfrage Header-Informationen hinzu

Manchmal müssen wir der Anfrage Header-Informationen hinzufügen. Hier ist ein Beispiel für das Hinzufügen von Header-Informationen:

CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost("https://www.baidu.com");
httpPost.setHeader("User-Agent", "Mozilla/5.0");
try (CloseableHttpResponse response = httpClient.execute(httpPost)) {
    HttpEntity entity = response.getEntity();
    if (entity != null) {
        String result = EntityUtils.toString(entity, "UTF-8");
        System.out.println(result);
    }
} catch (IOException e) {
    e.printStackTrace();
}
Nach dem Login kopieren

Der obige Code sendet eine GET-Anfrage an Baidu und fügt User-Agent-Header-Informationen hinzu. In diesem Beispiel verwenden wir das HttpPost-Objekt, um eine GET-Anfrage zu erstellen und rufen die setHeader-Methode auf, um Header-Informationen hinzuzufügen. Die Entität wird in der Antwort abgerufen und dann in eine Zeichenfolge umgewandelt und ausgegeben.

  1. Legen Sie das Zeitlimit beim Senden einer Anfrage fest.

Beim Senden einer Anfrage können Sie auch das Zeitlimit für die Anfrage und das Antwort-Timeout festlegen. Dadurch wird verhindert, dass der Client auf unbestimmte Zeit blockiert, während er auf eine Antwort vom Server wartet. Hier ist ein Beispiel für das Festlegen eines Zeitlimits:

CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost("https://www.baidu.com");
RequestConfig requestConfig = RequestConfig.custom()
    .setConnectTimeout(5000) // 连接超时时间
    .setSocketTimeout(5000) // 响应超时时间
    .build();
httpPost.setConfig(requestConfig);
try (CloseableHttpResponse response = httpClient.execute(httpPost)) {
    HttpEntity entity = response.getEntity();
    if (entity != null) {
        String result = EntityUtils.toString(entity, "UTF-8");
        System.out.println(result);    
    }
} catch (IOException e) {
    e.printStackTrace();
}
Nach dem Login kopieren

Der obige Code sendet eine POST-Anfrage an Baidu und setzt das Verbindungszeitlimit und das Antwortzeitlimit auf 5 Sekunden. In diesem Beispiel verwenden wir das RequestConfig-Objekt und legen das Verbindungszeitlimit und das Antwortzeitlimit über die benutzerdefinierte Methode fest. Die Entität wird in der Antwort abgerufen und dann zur Ausgabe in einen String umgewandelt.

  1. Zusammenfassung

Die Apache HttpClient-Bibliothek bietet viele praktische APIs, die es Java-Entwicklern ermöglichen, HTTP-Anfragen sehr einfach durchzuführen. In diesem Artikel wird beschrieben, wie Sie mit Apache HttpClient GET-Anfragen, POST-Anfragen, Anfragen mit Dateien, Anfragen zum Hinzufügen von Header-Informationen und Anfragen zum Festlegen von Zeitüberschreitungen senden. Ich hoffe, dass dieser Artikel Java-Entwicklern, die Apache HttpClient verwenden, etwas Hilfe bieten kann.

Das obige ist der detaillierte Inhalt vonVerwendung von Apache HttpClient für HTTP-Anfragen in der Java-API-Entwicklung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Von Anfang bis Ende: So verwenden Sie die PHP-Erweiterung cURL, um HTTP-Anfragen zu stellen Von Anfang bis Ende: So verwenden Sie die PHP-Erweiterung cURL, um HTTP-Anfragen zu stellen Jul 29, 2023 pm 05:07 PM

Von Anfang bis Ende: So verwenden Sie die PHP-Erweiterung cURL für HTTP-Anfragen. Einführung: Bei der Webentwicklung ist es häufig erforderlich, mit APIs von Drittanbietern oder anderen Remote-Servern zu kommunizieren. Die Verwendung von cURL zum Senden von HTTP-Anfragen ist eine gängige und leistungsstarke Methode. In diesem Artikel wird erläutert, wie Sie mit PHP cURL erweitern, um HTTP-Anfragen auszuführen, und einige praktische Codebeispiele bereitstellen. 1. Vorbereitung Stellen Sie zunächst sicher, dass PHP die cURL-Erweiterung installiert hat. Zur Überprüfung können Sie php-m|grepcurl in der Befehlszeile ausführen

So lösen Sie das Problem der abgelehnten HTTP-Anforderungsverbindung in der Java-Entwicklung So lösen Sie das Problem der abgelehnten HTTP-Anforderungsverbindung in der Java-Entwicklung Jun 29, 2023 pm 02:29 PM

So lösen Sie das Problem der Ablehnung einer HTTP-Anforderungsverbindung bei der Java-Entwicklung. Bei der Entwicklung von Java stoßen wir häufig auf das Problem der Ablehnung einer HTTP-Anforderungsverbindung. Dieses Problem kann auftreten, weil die Serverseite die Zugriffsrechte einschränkt oder die Netzwerk-Firewall den Zugriff auf HTTP-Anfragen blockiert. Um dieses Problem zu beheben, sind einige Anpassungen an Ihrem Code und Ihrer Umgebung erforderlich. In diesem Artikel werden mehrere gängige Lösungen vorgestellt. Überprüfen Sie zunächst die Netzwerkverbindung und den Serverstatus. Sie können versuchen, auf andere Websites oder Dienste zuzugreifen

Ursachenanalyse: HTTP-Anforderungsfehler 504 Gateway-Timeout Ursachenanalyse: HTTP-Anforderungsfehler 504 Gateway-Timeout Feb 19, 2024 pm 05:12 PM

Kurze Einführung in die Ursache des HTTP-Anfragefehlers: 504GatewayTimeout: Während der Netzwerkkommunikation interagiert der Client mit dem Server, indem er HTTP-Anfragen sendet. Allerdings kann es beim Absenden der Anfrage manchmal zu Fehlermeldungen kommen. Einer davon ist der 504GatewayTimeout-Fehler. In diesem Artikel werden die Ursachen und Lösungen für diesen Fehler untersucht. Was ist der 504GatewayTimeout-Fehler? GatewayTimeo

Lösung: Socket-Fehler bei der Verarbeitung von HTTP-Anfragen Lösung: Socket-Fehler bei der Verarbeitung von HTTP-Anfragen Feb 25, 2024 pm 09:24 PM

HTTP-Anfragefehler: Lösung für SocketError Bei Netzwerkanfragen treten häufig verschiedene Fehler auf. Eines der häufigsten Probleme ist SocketError. Dieser Fehler wird ausgegeben, wenn unsere Anwendung keine Verbindung mit dem Server herstellen kann. In diesem Artikel besprechen wir einige häufige Ursachen und Lösungen für SocketError. Zuerst müssen wir verstehen, was Socket ist. Socket ist ein Kommunikationsprotokoll, das Anwendungen ermöglicht

Legen Sie Abfrageparameter für HTTP-Anfragen mit Golang fest Legen Sie Abfrageparameter für HTTP-Anfragen mit Golang fest Jun 02, 2024 pm 03:27 PM

Um Abfrageparameter für HTTP-Anfragen in Go festzulegen, können Sie die Methode http.Request.URL.Query().Set() verwenden, die Abfrageparameternamen und -werte als Parameter akzeptiert. Zu den spezifischen Schritten gehören: Erstellen einer neuen HTTP-Anfrage. Verwenden Sie die Methode Query().Set(), um Abfrageparameter festzulegen. Verschlüsseln Sie die Anfrage. Führen Sie die Anfrage aus. Rufen Sie den Wert eines Abfrageparameters ab (optional). Abfrageparameter entfernen (optional).

Welche kostenlosen API-Schnittstellen-Websites gibt es? Welche kostenlosen API-Schnittstellen-Websites gibt es? Jan 05, 2024 am 11:33 AM

Kostenlose API-Schnittstellen-Website: 1. UomgAPI: eine Plattform, die stabile und schnelle kostenlose API-Dienste mit über 100 API-Schnittstellen bereitstellt; 2. Free-API: stellt mehrere kostenlose API-Schnittstellen bereit; 4 . AutoNavi Open Platform: Bietet kartenbezogene API-Schnittstellen; 5. Gesichtserkennung Face++: Bietet gesichtserkennungsbezogene API-Schnittstellen. 6. Geschwindigkeitsdaten: Bietet über hundert kostenlose API-Schnittstellen, die für verschiedene Anforderungen geeignet sind 7. Aggregierte Daten usw.

Wie Nginx die Wiederholungskonfiguration von HTTP-Anfragen implementiert Wie Nginx die Wiederholungskonfiguration von HTTP-Anfragen implementiert Nov 08, 2023 pm 04:47 PM

Für die Implementierung der HTTP-Anforderungswiederholungskonfiguration sind bestimmte Codebeispiele erforderlich. Nginx ist ein sehr beliebter Open-Source-Reverse-Proxy-Server. Er verfügt über leistungsstarke Funktionen und flexible Konfigurationsoptionen und kann zur Implementierung der HTTP-Anforderungswiederholungskonfiguration verwendet werden. Bei der Netzwerkkommunikation kann es manchmal vorkommen, dass die von uns initiierte HTTP-Anfrage aus verschiedenen Gründen fehlschlägt, z. B. Netzwerkverzögerung, Serverlast usw. Um die Zuverlässigkeit und Stabilität der Anwendung zu verbessern, müssen wir es möglicherweise erneut versuchen, wenn die Anfrage fehlschlägt. Im Folgenden wird die Verwendung von Ng vorgestellt

So verwenden Sie Nginx zur Komprimierung und Dekomprimierung von HTTP-Anfragen So verwenden Sie Nginx zur Komprimierung und Dekomprimierung von HTTP-Anfragen Aug 02, 2023 am 10:09 AM

So verwenden Sie Nginx zum Komprimieren und Dekomprimieren von HTTP-Anfragen. Nginx ist ein leistungsstarker Webserver und Reverse-Proxy-Server, der leistungsstark und flexibel ist. Bei der Verarbeitung von HTTP-Anfragen können Sie die von Nginx bereitgestellten Module gzip und gunzip verwenden, um die Anfragen zu komprimieren und zu dekomprimieren, um die Menge der Datenübertragung zu reduzieren und die Antwortgeschwindigkeit der Anfrage zu verbessern. In diesem Artikel werden die spezifischen Schritte zur Verwendung von Nginx zum Komprimieren und Dekomprimieren von HTTP-Anforderungen vorgestellt und entsprechende Codebeispiele bereitgestellt. Gzip-Modul konfigurieren

See all articles