1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
pub fn get_bytes<U: AsRef<str>>(url: U) -> Result<Vec<u8>, String> { let mut handle = curl::easy::Easy::new(); let mut bytes = Vec::new(); handle.url(url.as_ref()).map_err(|e| format!("bad url: {}", e))?; { let mut transfer = handle.transfer(); transfer .write_function(|new_data| { bytes.extend_from_slice(new_data); Ok(new_data.len()) }) .map_err(|e| format!("write function: {}", e))?; transfer.perform().map_err(|e| format!("failed to perform: {}", e))?; } Ok(bytes) }