Enviando uma requisição HTTP com autenticação básica

Rust:
Enviando uma requisição HTTP com autenticação básica

Como Fazer:

use reqwest::{blocking::Client, header};

fn main() -> Result<(), reqwest::Error> {
    // Seu nome de usuário e senha
    let username = "usuario";
    let password = "senha";

    // Codificar em base64 a autenticação
    let basic_auth = format!("Basic {}", base64::encode(format!("{}:{}", username, password)));
    
    // Criar cliente HTTP com cabeçalho de autenticação básica
    let client = Client::new();
    let response = client
        .get("https://seu-endereco-api.com/recurso")
        .header(header::AUTHORIZATION, basic_auth)
        .send()?;

    // Tratar a resposta
    println!("Status: {}", response.status());
    println!("Headers:\n{:?}", response.headers());
    println!("Body:\n{}", response.text()?);

    Ok(())
}

Exemplo de saída:

Status: 200 OK
Headers:
{
    ...
    "content-type": "application/json",
    ...
}
Body:
{
    "dados": "valor",
    ...
}

Aprofundando

A autenticação básica HTTP é um método clássico, parte do HTTP desde os seus primeiros dias. Apesar de sua simplicidade, hoje em dia é menos usada devido a vulnerabilidades, sendo frequentemente substituída por tokens de autenticação, como o OAuth.

Alternativas incluem HTTPS, que encripta credenciais e evita que sejam interceptadas, e mecanismos de autenticação mais complexos que oferecem maior segurança.

Os detalhes de implementação em Rust envolvem usar bibliotecas como reqwest para enviar a solicitação e base64 para a codificação das credenciais, além de manusear adequadamente os cabeçalhos HTTP.

Veja Também