diff --git a/crates/dtrack-core/src/lib.rs b/crates/dtrack-core/src/lib.rs index 8540fee..90ab001 100644 --- a/crates/dtrack-core/src/lib.rs +++ b/crates/dtrack-core/src/lib.rs @@ -49,18 +49,19 @@ impl DtrackClient { self.get_query(path, &[]).await } - /// Wie `get`, aber mit Query-Parametern, die reqwest sauber URL-encodet - /// (z.B. fuer Namen mit Leerzeichen in `lookup_project`). + /// Wie `get`, aber mit Query-Parametern. reqwest 0.13 hat kein + /// `RequestBuilder::query` mehr -- daher die URL ueber `Url::parse_with_params` + /// bauen; das encodet z.B. Leerzeichen in `lookup_project`-Namen sauber. async fn get_query(&self, path: &str, params: &[(&str, &str)]) -> Result { - let url = format!("{}{}", self.base_url, path); + let url = reqwest::Url::parse_with_params(&format!("{}{}", self.base_url, path), params) + .with_context(|| format!("Ungueltige URL fuer {path}"))?; let resp = self .http - .get(&url) + .get(url) .header("X-Api-Key", &self.api_key) - .query(params) .send() .await - .with_context(|| format!("Request an {url} fehlgeschlagen"))?; + .with_context(|| format!("Request an {path} fehlgeschlagen"))?; self.handle(path, resp).await }