2个版本
0.1.1 | 2024年2月20日 |
---|---|
0.1.0 | 2024年1月15日 |
#259 in #requests
在blacksmith中使用
6KB
92 行
GET_VEC
get_vec(...)方法允许对Vec<&str>形式的URL进行异步获取请求,例如。
let api = API::new();
#[threads(2)]
api.get_vec(urls, DATA_PATH).await;
这将检索urls vec中的两个文件,并将它们下载到"src/"目录中,使用2个异步线程。
包括"header"和"threads"宏;header添加自定义头部,threads指定要打开的线程数。默认情况下,threads设置为1。
以下是一个示例
#[tokio::main]
fn main() {
let mut api = API::new(); // runner required to be mut for header changes
let SAVE_PATH: &str = "./data";
// Visit the first api, needing only the User-Agent (with only 1 thread)
//
let api_1 = vec![
"www.endpoint_1.xml",
"www.endpoint_2.json"
];
#[header("User-Agent", "example@email_domain.com")]
api.get_vec(api_1, ).await;
// Visit the second api, now needing an API key; referred to as "API-Token"
// (Opening 2 threads at once)
//
let api_2 = vec![
"www.endpoint_3.xml",
"www.endpoint_4.csv"
];
#[threads(2)]
#[header("User-Agent", "example@email_domain.com")]
#[header("API-Token", "XXXXXXXXX")]
api.get_vec(api_2, ).await;
}
待办事项!
- request_per_second包装器+进程宏
- 添加日志记录器(带有布尔选项)
- 添加thiserror
- 确定get_vec是否可以用泛型类型定义
依赖项
~265–710KB
~17K SLoC