Cargo.toml
[package]
name = "doe_example"
version = "0.1.3"
edition = "2021"
[dependencies]
[dependencies.doe]
version = "*"
path = "../doe"
features = ["http","json","async_runtime"]
#![feature(async_closure)]
#[allow(warnings)]
fn main() {
use doe::async_runtime::Runtime;
use doe::http::async_client_builder;
use doe::http::ToHeader;
use doe::*;
let rt = Runtime::new().unwrap();
rt.block_on(async {
async fn run() -> doe::DynError<()> {
let (url, headers) = r#"
GET /user_api/v1/user HTTP/2
Host: api.juejin.cn
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/120.0
Referer: https://juejin.cn/
Content-Type: application/json
Origin: https://juejin.cn
Cookie: _tea_utm_cache_2608={%22utm_source%22:%22gold_browser_extension%22}; __tea_cookie_tokens_2608=%257B%2522web_id%2522%253A%25227277220245100971556%2522%252C%2522user_unique_id%2522%253A%25227277220245100971556%2522%252C%2522timestamp%2522%253A1694359888468%257D
"#
.url_and_headers();
let client = async_client_builder()
.await
.danger_accept_invalid_certs(true)
.no_proxy()
.default_headers(headers)
.build()
.unwrap();
let res = client
.get(url.unwrap().push_front("https://"))
.send()
.await?;
let html = res.text().await?;
println!("{:?}", html);
Ok(())
}
run().await;
});
}