שליחת בקשת HTTP עם אימות בסיסי

Java:
שליחת בקשת HTTP עם אימות בסיסי

איך לעשות:

import java.net.Authenticator;
import java.net.PasswordAuthentication;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Base64;
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class HttpClientBasicAuth {

    public static void main(String[] args) {
        try {
            URL url = new URL("http://example.com/api/resource");
            String auth = "username:password";
            String encodedAuth = Base64.getEncoder().encodeToString(auth.getBytes());
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            
            connection.setRequestMethod("GET");
            connection.setRequestProperty("Authorization", "Basic " + encodedAuth);
            
            int responseCode = connection.getResponseCode();
            System.out.println("Response Code: " + responseCode);

            if (responseCode == HttpURLConnection.HTTP_OK) {
                BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
                String inputLine;
                StringBuilder response = new StringBuilder();

                while ((inputLine = in.readLine()) != null) {
                    response.append(inputLine);
                }
                in.close();

                System.out.println(response.toString());
            } else {
                System.out.println("GET request not worked");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

הפלט:

Response Code: 200
{json response from server}

טבילה עמוקה

שליחת בקשות HTTP עם אימות בסיסי היא אחת מהשיטות הקדמיות ביותר באמצעות שם משתמש וסיסמא כדי לאמת גישות למערכות מרוחקות. זה פשוט אך לא הכי בטוח. אלטרנטיבות כמו OAuth או אמצעי אימות טוקן-בסיסיים מציעים שכבות בטיחות נוספות. עם זאת, ישנם מקרים שבהם בקשה פשוטה עם אימות בסיסי היא הפתרון המתאים ביותר, כמו שימוש בAPIs פנימיים שכבר מאובטחים על ידי רשתות ארגוניות. כשמשתמשים באימות בסיסי, חשוב להעביר בקשות אך ורק דרך HTTPS להגנה מפני האזנות לרשת.

ראה גם