1 use anyhow::Context; 2 use test_programs::p3::wasi::http::types::{Method, Scheme}; 3 4 struct Component; 5 6 test_programs::p3::export!(Component); 7 8 impl test_programs::p3::exports::wasi::cli::run::Guest for Component { 9 async fn run() -> Result<(), ()> { 10 let addr = test_programs::p3::wasi::cli::environment::get_environment() 11 .into_iter() 12 .find_map(|(k, v)| k.eq("HTTP_SERVER").then_some(v)) 13 .unwrap(); 14 let res = test_programs::p3::http::request( 15 Method::Put, 16 Scheme::Http, 17 &addr, 18 "/put", 19 Some(&[]), 20 None, 21 None, 22 None, 23 None, 24 ) 25 .await 26 .context("/put") 27 .unwrap(); 28 29 println!("/put: {res:?}"); 30 assert_eq!(res.status, 200); 31 let method = res.header("x-wasmtime-test-method").unwrap(); 32 assert_eq!(std::str::from_utf8(method).unwrap(), "PUT"); 33 let uri = res.header("x-wasmtime-test-uri").unwrap(); 34 assert_eq!(std::str::from_utf8(uri).unwrap(), format!("/put")); 35 assert_eq!(res.body, b""); 36 Ok(()) 37 } 38 } 39 40 fn main() {} 41