From 7b7dd55da4fb6b1dd907acf2843b518e7b3523e0 Mon Sep 17 00:00:00 2001 From: Joshua Nelson Date: Sun, 27 Dec 2020 18:31:50 -0500 Subject: [PATCH] Url-encode parameters properly --- src/web/releases.rs | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/web/releases.rs b/src/web/releases.rs index f1830a71b..d08ce9ff4 100644 --- a/src/web/releases.rs +++ b/src/web/releases.rs @@ -205,14 +205,17 @@ fn get_search_results( .unwrap() }); - let url = format!( - "https://crates.io/api/v1/crates?page={page}&per_page={limit}&q={query}", - page = page, - limit = limit, - query = query - ); + let page: &str = &page.to_string(); + let url = url::Url::parse_with_params( + "https://crates.io/api/v1/crates", + &[ + ("page", page), + ("per_page", &limit.to_string()), + ("q", query), + ], + )?; debug!("fetching search results from {}", url); - let releases: CratesIoReleases = HTTP_CLIENT.get(&url).send()?.json()?; + let releases: CratesIoReleases = HTTP_CLIENT.get(url).send()?.json()?; let query = conn.prepare( "SELECT github_repos.stars, releases.target_name, releases.rustdoc_status FROM crates INNER JOIN releases ON crates.id = releases.crate_id