rust doe crate send http request

34 阅读1分钟

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;

});

}