Maison Java javaDidacticiel Utilisation d'Apache HttpClient pour les requêtes HTTP dans le développement d'API Java

Utilisation d'Apache HttpClient pour les requêtes HTTP dans le développement d'API Java

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

Avec le développement continu d'Internet, le protocole HTTP est devenu l'une des pierres angulaires de la communication réseau moderne. En programmation Java, en utilisant la bibliothèque Apache HttpClient, vous pouvez effectuer des opérations de requête HTTP très facilement. Cet article explique comment utiliser Apache HttpClient pour effectuer des requêtes HTTP dans le développement d'API Java.

  1. Préparation

Avant de commencer, vous devez télécharger la bibliothèque Apache HttpClient et l'ajouter en tant que dépendance du projet. Apache HttpClient est une bibliothèque client HTTP Java open source qui peut être référencée via des outils tels que Maven et Gradle.

Ce qui suit est un exemple d'utilisation de Maven pour référencer Apache HttpClient :

<dependencies>
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.5.13</version>
    </dependency>
</dependencies>
Copier après la connexion

Après avoir présenté la bibliothèque, vous pouvez commencer à effectuer des opérations de requête HTTP.

  1. Envoyer une requête GET

Envoyer une requête GET à l'aide de HttpClient est très simple. Voici un exemple qui montre comment envoyer une requête GET via HttpClient et imprimer le contenu de la réponse :

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();
}
Copier après la connexion

Le code ci-dessus enverra une requête GET à Baidu, puis affichera le contenu de la réponse. Dans ce code, nous créons une instance client CloseableHttpClient, puis créons une requête GET à l'aide de l'objet HttpGet et exécutons la requête. L'entité est obtenue dans la réponse, puis l'entité est convertie en chaîne et en sortie.

  1. Envoyer une requête POST

Lorsque vous utilisez HttpClient pour envoyer une requête POST, vous pouvez choisir d'utiliser un objet UrlEncodedFormEntity ou un objet MultipartEntityBuilder pour inclure les paramètres de la requête.

Ce qui suit est un exemple d'utilisation de l'objet UrlEncodedFormEntity :

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();
}
Copier après la connexion

Le code ci-dessus enverra une requête POST à ​​Baidu et inclura les paramètres dans le corps de la requête. Dans cet exemple, nous utilisons un objet UrlEncodedFormEntity pour contenir les paramètres de requête et les définir comme entités pour la requête POST. L'entité est obtenue dans la réponse puis convertie en chaîne pour la sortie.

  1. Envoyer des fichiers

Lorsque vous devez envoyer des fichiers, vous devez utiliser l'objet MultipartEntityBuilder. Voici un exemple de fichier inclus :

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();
}
Copier après la connexion

Le code ci-dessus transférera un fichier nommé example.txt vers localhost:8080. Dans cet exemple, nous utilisons un objet MultipartEntityBuilder et ajoutons le fichier en tant que contenu binaire. L'entité est obtenue dans la réponse puis convertie en chaîne pour la sortie.

  1. Ajouter des informations d'en-tête lors de l'envoi d'une demande

Parfois, nous devons ajouter des informations d'en-tête à la demande. Voici un exemple d'ajout d'informations d'en-tête :

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();
}
Copier après la connexion

Le code ci-dessus enverra une requête GET à Baidu et ajoutera des informations d'en-tête User-Agent. Dans cet exemple, nous utilisons l'objet HttpPost pour créer une requête GET et appelons la méthode setHeader pour ajouter des informations d'en-tête. L'entité est obtenue dans la réponse, puis l'entité est convertie en chaîne et en sortie.

  1. Définir le délai d'expiration lors de l'envoi d'une demande

Lors de l'envoi d'une demande, vous pouvez également définir le délai d'expiration de la demande et le délai d'expiration de la réponse. Cela évite que le client bloque indéfiniment en attendant une réponse du serveur. Voici un exemple de définition d'un délai d'attente :

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();
}
Copier après la connexion

Le code ci-dessus enverra une requête POST à ​​Baidu et définira le délai d'expiration de connexion et le délai d'attente de réponse à 5 secondes. Dans cet exemple, nous utilisons l'objet RequestConfig et définissons le délai d'expiration de connexion et le délai d'expiration de réponse via la méthode personnalisée. L'entité est obtenue dans la réponse puis convertie en chaîne pour la sortie.

  1. Résumé

La bibliothèque Apache HttpClient fournit de nombreuses API pratiques qui permettent aux développeurs Java d'effectuer des requêtes HTTP très facilement. Cet article décrit comment utiliser Apache HttpClient pour envoyer des requêtes GET, des requêtes POST, des requêtes incluant des fichiers, des requêtes ajoutant des informations d'en-tête et des requêtes définissant des délais d'attente. J'espère que cet article pourra fournir de l'aide aux développeurs Java utilisant Apache HttpClient.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Du début à la fin : Comment utiliser l'extension php cURL pour effectuer des requêtes HTTP Du début à la fin : Comment utiliser l'extension php cURL pour effectuer des requêtes HTTP Jul 29, 2023 pm 05:07 PM

Du début à la fin : Comment utiliser l'extension php cURL pour les requêtes HTTP Introduction : En développement web, il est souvent nécessaire de communiquer avec des API tierces ou d'autres serveurs distants. Utiliser cURL pour effectuer des requêtes HTTP est un moyen courant et puissant. Cet article expliquera comment utiliser PHP pour étendre cURL afin d'effectuer des requêtes HTTP et fournira quelques exemples de code pratiques. 1. Préparation Tout d'abord, assurez-vous que l'extension cURL est installée sur php. Vous pouvez exécuter php-m|grepcurl sur la ligne de commande pour vérifier

Comment résoudre le problème de connexion de requête HTTP refusée dans le développement Java Comment résoudre le problème de connexion de requête HTTP refusée dans le développement Java Jun 29, 2023 pm 02:29 PM

Comment résoudre le problème du refus de connexion aux requêtes HTTP dans le développement Java. Dans le développement Java, nous rencontrons souvent le problème du refus de la connexion aux requêtes HTTP. Ce problème peut survenir en raison de restrictions côté serveur sur les droits d'accès ou de pare-feu réseau bloquant l'accès aux requêtes HTTP. La résolution de ce problème nécessite quelques ajustements de votre code et de votre environnement. Cet article présentera plusieurs solutions courantes. Vérifiez la connexion réseau et l'état du serveur. Tout d'abord, confirmez que votre connexion réseau est normale. Vous pouvez essayer d'accéder à d'autres sites Web ou services pour voir.

Analyse des causes : erreur de requête HTTP 504 délai d'expiration de la passerelle Analyse des causes : erreur de requête HTTP 504 délai d'expiration de la passerelle Feb 19, 2024 pm 05:12 PM

Brève introduction à la raison de l'erreur de requête http : 504GatewayTimeout : pendant la communication réseau, le client interagit avec le serveur en envoyant des requêtes HTTP. Cependant, nous pouvons parfois rencontrer des messages d'erreur lors du processus d'envoi de la demande. L'un d'eux est l'erreur 504GatewayTimeout. Cet article explorera les causes et les solutions à cette erreur. Qu'est-ce que l'erreur 504GatewayTimeout ? PasserelleTimeo

Solution : erreur de socket lors du traitement des requêtes HTTP Solution : erreur de socket lors du traitement des requêtes HTTP Feb 25, 2024 pm 09:24 PM

Erreur de requête http : solution à SocketError Lors des requêtes réseau, nous rencontrons souvent diverses erreurs. L'un des problèmes courants est SocketError. Cette erreur est générée lorsque notre application ne parvient pas à établir une connexion avec le serveur. Dans cet article, nous discuterons de certaines causes courantes et solutions de SocketError. Tout d’abord, nous devons comprendre ce qu’est Socket. Socket est un protocole de communication qui permet aux applications de

Définir les paramètres de requête pour les requêtes HTTP à l'aide de Golang Définir les paramètres de requête pour les requêtes HTTP à l'aide de Golang Jun 02, 2024 pm 03:27 PM

Pour définir les paramètres de requête pour les requêtes HTTP dans Go, vous pouvez utiliser la méthode http.Request.URL.Query().Set(), qui accepte les noms et valeurs des paramètres de requête comme paramètres. Les étapes spécifiques incluent : Créer une nouvelle requête HTTP. Utilisez la méthode Query().Set() pour définir les paramètres de requête. Encodez la demande. Exécutez la demande. Obtenez la valeur d'un paramètre de requête (facultatif). Supprimez les paramètres de requête (facultatif).

Quels sont les sites Web à interface API gratuite ? Quels sont les sites Web à interface API gratuite ? Jan 05, 2024 am 11:33 AM

Site Web d'interface API gratuite : 1. UomgAPI : une plate-forme qui fournit des services API gratuits stables et rapides, avec plus de 100 interfaces API ; 2. free-api : fournit plusieurs interfaces API gratuites ; 3. API JSON : fournit une interface API de données gratuite ; . AutoNavi Open Platform : fournit des interfaces API liées aux cartes ; 5. Reconnaissance faciale Face++ : fournit des interfaces API liées à la reconnaissance faciale ; 6. Speed ​​​​Data : fournit plus d'une centaine d'interfaces API gratuites, adaptées à divers besoins dans le cas des données ; sources ; 7. Données agrégées, etc.

Comment Nginx implémente la configuration des nouvelles tentatives des requêtes HTTP Comment Nginx implémente la configuration des nouvelles tentatives des requêtes HTTP Nov 08, 2023 pm 04:47 PM

La façon dont Nginx implémente la configuration des nouvelles tentatives de requête HTTP nécessite des exemples de code spécifiques. Nginx est un serveur proxy inverse open source très populaire. Il possède des fonctions puissantes et des options de configuration flexibles et peut être utilisé pour implémenter la configuration des nouvelles tentatives de requête HTTP. Dans les communications réseau, la requête HTTP que nous lançons peut parfois échouer pour diverses raisons, telles que le retard du réseau, la charge du serveur, etc. Afin d'améliorer la fiabilité et la stabilité de l'application, nous devrons peut-être réessayer lorsque la demande échoue. Ce qui suit présentera comment utiliser Ng

Comment utiliser Nginx pour la compression et la décompression des requêtes HTTP Comment utiliser Nginx pour la compression et la décompression des requêtes HTTP Aug 02, 2023 am 10:09 AM

Comment utiliser Nginx pour compresser et décompresser les requêtes HTTP Nginx est un serveur Web hautes performances et un serveur proxy inverse puissant et flexible. Lors du traitement des requêtes HTTP, vous pouvez utiliser les modules gzip et gunzip fournis par Nginx pour compresser et décompresser les requêtes afin de réduire la quantité de transmission de données et d'améliorer la vitesse de réponse aux requêtes. Cet article présentera les étapes spécifiques d'utilisation de Nginx pour compresser et décompresser les requêtes HTTP, et fournira des exemples de code correspondants. Configurer le module gzip

See all articles