Maison >Java >javaDidacticiel >Comment envoyer des requêtes HTTP en Java à l'aide de HttpUrlConnection ?

Comment envoyer des requêtes HTTP en Java à l'aide de HttpUrlConnection ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-21 00:09:11447parcourir

How to Send HTTP Requests in Java using HttpUrlConnection?

Envoi de requêtes HTTP en Java

La possibilité d'envoyer des requêtes HTTP est essentielle pour interagir avec des serveurs distants et des API Web en Java. Une façon de composer et de transmettre des requêtes HTTP consiste à utiliser la classe java.net.HttpUrlConnection.

Création de la requête HTTP

Pour créer une requête HTTP, vous pouvez utiliser le étapes suivantes :

  1. Créer un objet URL : Cela représente l'URL cible du HTTP requête.
  2. Ouvrir une connexion :Utilisez la méthode openConnection() sur l'URL pour établir une connexion au serveur.
  3. Définir la méthode de requête : Spécifiez la méthode HTTP (par exemple, GET, POST, PUT) à l'aide de setRequestMethod() méthode.
  4. Définir les propriétés de la requête : Configurer diverses propriétés de la requête HTTP, telles que le type de contenu, la langue et les paramètres de cache.
  5. Activer la sortie : Définissez setDoOutput(true) pour activer l'écriture de données dans le corps de la requête.

Envoi du HTTP Requête

Une fois la requête formulée, vous pouvez l'envoyer au serveur à l'aide d'un DataOutputStream :

  1. Écrire le corps de la requête : Utiliser le writeBytes( ) pour écrire le corps de la requête (le cas échéant) dans le flux de sortie.
  2. Fermez la sortie stream : Ceci termine l'envoi de la demande.

Obtention de la réponse HTTP

Lors de l'envoi de la demande, vous pouvez obtenir la réponse du serveur :

  1. Obtenir le flux d'entrée : Utilisez la méthode getInputStream() pour récupérer le flux d'entrée de la réponse.
  2. Lire la réponse : Utilisez un BufferedReader pour lire le contenu du flux de réponse ligne par ligne.
  3. Analyser le corps de la réponse : Le corps de la réponse peut contenir les données réelles renvoyées par le serveur. Vous pouvez l'analyser en conséquence.

Exemple d'extrait de code

Le code Java suivant montre comment envoyer une requête HTTP POST à ​​l'aide de la classe HttpUrlConnection :

import java.net.HttpURLConnection;
import java.net.URL;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

public class HttpPostExample {

  public static void main(String[] args) {
    String targetURL = "https://example.com/api/endpoint";
    String urlParameters = "key1=value1&key2=value2";

    HttpURLConnection connection = null;

    try {
      URL url = new URL(targetURL);
      connection = (HttpURLConnection) url.openConnection();
      connection.setRequestMethod("POST");
      connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
      connection.setRequestProperty("Content-Length", Integer.toString(urlParameters.getBytes().length));
      connection.setDoOutput(true);

      DataOutputStream wr = new DataOutputStream(connection.getOutputStream());
      wr.writeBytes(urlParameters);
      wr.close();

      InputStream is = connection.getInputStream();
      BufferedReader rd = new BufferedReader(new InputStreamReader(is));
      StringBuilder response = new StringBuilder();
      String line;
      while ((line = rd.readLine()) != null) {
        response.append(line);
        response.append('\r');
      }
      rd.close();
      System.out.println(response.toString());
    } catch (IOException e) {
      e.printStackTrace();
    } finally {
      if (connection != null) {
        connection.disconnect();
      }
    }
  }
}

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:
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