From 0a790ccaaaa293c62f5fe543dc6179887d5294a9 Mon Sep 17 00:00:00 2001 From: Richard Date: Wed, 4 Feb 2026 19:33:27 +0000 Subject: [PATCH] fix query paris --- src/main.rs | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/src/main.rs b/src/main.rs index 443ed70..661cb38 100644 --- a/src/main.rs +++ b/src/main.rs @@ -58,32 +58,35 @@ async fn main() -> Result<(), Box> { fs::create_dir_all(&session_dir)?; info!("Created session directory: {}", session_dir.display()); + // Parse extra query params once if specified + let extra_params: Vec<(String, String)> = args + .query_string_all + .as_ref() + .map(|qs| { + form_urlencoded::parse(qs.as_bytes()) + .map(|(k, v)| (k.into_owned(), v.into_owned())) + .collect() + }) + .unwrap_or_default(); + // Process URLs and add query string parameters if specified let mut processed_urls = Vec::new(); for url_str in &args.urls { let mut url = Url::parse(url_str)?; - if let Some(ref extra_params) = args.query_string_all { - // Parse existing query string and extra params + if !extra_params.is_empty() { let existing: Vec<(String, String)> = url .query_pairs() .map(|(k, v)| (k.into_owned(), v.into_owned())) .collect(); - let extra: Vec<(String, String)> = form_urlencoded::parse(extra_params.as_bytes()) - .map(|(k, v)| (k.into_owned(), v.into_owned())) - .collect(); - - // Rebuild query string with existing + extra params - { - let mut query_pairs = url.query_pairs_mut(); - query_pairs.clear(); - for (k, v) in &existing { - query_pairs.append_pair(k, v); - } - for (k, v) in &extra { - query_pairs.append_pair(k, v); - } + let mut query_pairs = url.query_pairs_mut(); + query_pairs.clear(); + for (k, v) in &existing { + query_pairs.append_pair(k, v); + } + for (k, v) in &extra_params { + query_pairs.append_pair(k, v); } }