Skicka en HTTP-förfrågan med Basic-autentisering

Java:
Skicka en HTTP-förfrågan med Basic-autentisering

Hur man gör:

import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Base64;

public class BasicAuthRequest {

    public static void main(String[] args) throws IOException {
        String webPage = "http://example.com/api";
        String name = "user";
        String password = "pass";

        String authString = name + ":" + password;
        String encodedAuth = Base64.getEncoder().encodeToString(authString.getBytes());

        URL url = new URL(webPage);
        HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
        urlConnection.setRequestProperty("Authorization", "Basic " + encodedAuth);

        // Resten av koden för att hantera anslutningens input/output kommer här...
    }
}

Sample output saknas här eftersom det handlar mer om serverns respons än själva Java-koden.

Djupdykning

Skicka HTTP-förfrågan med grundläggande autentisering är så elementärt som det låter - det har använts sedan HTTP/1.0. Även om det är enkelt, bör man vara medveten om att det inte är det säkraste sättet att skicka känslig information eftersom bas64-kodning lätt kan dekodas. Modernt alternativ inkluderar OAuth och tokens.

En viktig aspekt av implementationen i Java är HttpURLConnection-klassen, som möjliggör skapandet och hanteringen av förbindelser till resurser på nätverket. Från Java 11 och framåt kan man även använda HttpClient-klassen för att göra HTTP-förfrågningar på ett mer flexibelt sätt, inklusive asynkron hantering.

Se också