lakestream 0.0.0

Yet another S3 file access util
Documentation

use std::collections::HashMap;
use std::error::Error;
use std::io::Read;

use ureq::Agent;

pub fn http_get_request(url: &str, headers: &HashMap<String, String>) -> Result<String, Box<dyn Error>> {
    let agent = Agent::new();
    let mut request_builder = agent.get(url);

    for (key, value) in headers.iter() {
        request_builder = request_builder.set(key, value);
    }
    let mut response = request_builder.call()?;

    let status = response.status();
    if !(200..300).contains(&status) {
        return Err(format!("Error: HTTP GET request failed with status code {}", status).into());
    }

    let mut body = String::new();
    response.into_reader().read_to_string(&mut body)?;
    Ok(body)
}