Wysyłanie zapytania http z podstawową autoryzacją

Rust:
Wysyłanie zapytania http z podstawową autoryzacją

Jak to zrobić:

use reqwest::header::{Authorization, Basic};
use std::error::Error;

#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
    let client = reqwest::Client::new();
    let username = "moj_login";
    let password = "moje_haslo"; // W praktyce, użyj lepszego sposobu na przechowywanie haseł.

   let auth = Basic {
       username: username.to_string(),
       password: Some(password.to_string()),
   };

    let response = client
        .get("http://przykladowa.strona/zasob")
        .header(Authorization(auth))
        .send()
        .await?;

    if response.status().is_success() {
        let content = response.text().await?;
        println!("Odpowiedź: {}", content);
    } else {
        println!("Błąd: {}", response.status());
    }
    
    Ok(())
}

Jeśli wszystko jest ok, zobaczysz w konsoli “Odpowiedź:” i treść zasobu. W przypadku błędu, pojawi się “Błąd:” i kod statusu.

Deep Dive

Podstawowa autentykacja HTTP (Basic Auth) to jedna z metod uwierzytelniania określona w HTTP/1.0. Wykorzystywana od lat 90., ale przez podstawowy poziom zabezpieczeń (base64) nie jest polecana dla wrażliwych danych bez HTTPS. Alternatywą może być Digest Auth, OAuth lub inne rozwiązanie z tokenem. W Rust, popularne są biblioteki takie jak reqwest dla żądań HTTP, które ułatwiają dodawanie nagłówków autentykacji.

Zobacz także: