From 541bb02b95a8075ddd2f3542715a7f88b9031a64 Mon Sep 17 00:00:00 2001 From: Ruslan Pislari Date: Thu, 16 Jul 2026 10:34:24 +0300 Subject: [PATCH] feat: add support for custom fetch headers in requests --- examples/http/wasi/simple_fetch/Cargo.toml | 2 +- examples/http/wasi/simple_fetch/src/lib.rs | 15 +++++++++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/examples/http/wasi/simple_fetch/Cargo.toml b/examples/http/wasi/simple_fetch/Cargo.toml index e2a5e42..4e07fb6 100644 --- a/examples/http/wasi/simple_fetch/Cargo.toml +++ b/examples/http/wasi/simple_fetch/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "simple_fetch" -version = "0.1.0" +version = "0.1.1" edition = "2021" publish = false diff --git a/examples/http/wasi/simple_fetch/src/lib.rs b/examples/http/wasi/simple_fetch/src/lib.rs index 479c524..84a10a2 100644 --- a/examples/http/wasi/simple_fetch/src/lib.rs +++ b/examples/http/wasi/simple_fetch/src/lib.rs @@ -26,8 +26,19 @@ async fn main(request: Request) -> anyhow::Result> { println!("Fetching: {target_url}"); - let upstream_req = Request::get(&target_url) - .header("accept", "application/json") + let mut builder = Request::get(&target_url).header("accept", "application/json"); + + if let Some(fetch_header) = request + .headers() + .get("x-fetch-header") + .and_then(|v| v.to_str().ok()) + { + if let Some((key, value)) = fetch_header.split_once(':') { + builder = builder.header(key.trim(), value.trim()); + } + } + + let upstream_req = builder .body(Body::empty()) .map_err(|e| anyhow!("failed to build request: {e}"))?;