Envoi d'une requête HTTP avec authentification de base

Java:
Envoi d'une requête HTTP avec authentification de base

How to: (Comment faire :)

import java.io.IOException;
import java.net.Authenticator;
import java.net.PasswordAuthentication;
import java.net.URL;
import javax.net.ssl.HttpsURLConnection;
import java.util.Base64;

public class HttpBasicAuth {
    
    public static void main(String[] args) throws IOException {
        String url = "https://example.com/api";
        String username = "user";
        String password = "pass";
        
        String auth = username + ":" + password;
        String encodedAuth = Base64.getEncoder().encodeToString(auth.getBytes());

        URL urlObject = new URL(url);
        HttpsURLConnection connection = (HttpsURLConnection) urlObject.openConnection();
        connection.setRequestProperty("Authorization", "Basic " + encodedAuth);

        int responseCode = connection.getResponseCode();
        System.out.println("Response Code: " + responseCode);
        // Handle input stream here to read the response
    }
}

Sortie attendue :

Response Code: 200

Si autre que 200, vérifiez les identifiants et l’URL.

Deep Dive (Plongée en profondeur)

L’authentification de base HTTP existe depuis le début du web, introduite par le RFC 2617 en 1997, et maintenant définie par le RFC 7617. C’est simple mais pas super sécurisé en solo; on l’utilise souvent avec HTTPS pour plus de sécurité. Il y a des alternatives, comme l’authentification Digest ou des tokens, qui peuvent offrir une meilleure sécurité. En Java, on a plusieurs manières de les envoyer, comme montré, ou en utilisant des bibliothèques tierces comme Apache HttpClient ou OkHttp.

See Also (Voir aussi)