use crate::error::DocxError;
use crate::image::get_extension;
use reqwest::Client;
pub async fn request_image_data(
client: &Client,
url: &str,
) -> Result<(Vec<u8>, String), DocxError> {
let response = client.get(url).send().await?;
if !response.status().is_success() {
return Err(DocxError::NotImage("请求图片错误".to_string()));
}
let headers = response.headers().clone();
let content_type = headers
.get(reqwest::header::CONTENT_TYPE)
.map(|h| h.to_str().unwrap_or(""))
.unwrap_or("");
let extension = if !content_type.starts_with("image/") {
get_extension(url)?
} else {
&content_type[6..]
};
let image_data = response.bytes().await?.to_vec();
Ok((image_data, extension.to_string()))
}