Skip to content

Commit

Permalink
Fix url path with parameters (#9)
Browse files Browse the repository at this point in the history
* Add url crate

* Fix path with added parameters

* Remove not needed reference
  • Loading branch information
maoertel committed Jan 13, 2023
1 parent e20f7ac commit 8412ff3
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 3 deletions.
1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ rustls-tls = ["reqwest/rustls-tls"]
async-trait = "0.1"
digest_auth = "0.3"
reqwest = { version = "0.11", default-features = false }
url = "2.3"

[dev-dependencies]
tokio = { version = "1", features = ["full"] }
Expand Down
5 changes: 3 additions & 2 deletions src/blocking.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
use digest_auth::HttpMethod;
use reqwest::blocking::{RequestBuilder, Response};
use reqwest::StatusCode;
use url::Position;

use crate::error::Error::{AuthHeaderMissing, RequestBuilderNotCloneable};
use crate::error::Result;
Expand All @@ -23,7 +24,7 @@ impl WithDigestAuth for RequestBuilder {
match first_response.status() {
StatusCode::UNAUTHORIZED => {
let request = clone_request_builder(self)?.build()?;
let path = request.url().path();
let path = &request.url()[Position::AfterPort..];
let method = HttpMethod::from(request.method().as_str());
let body = request.body().and_then(|b| b.as_bytes());
let answer = parse_digest_auth_header(first_response.headers(), path, method, body, username, password);
Expand Down Expand Up @@ -105,7 +106,7 @@ mod tests {
.with_status(200)
.create();

let request = Client::new().get(&url);
let request = Client::new().get(url);

// When I send with digest auth
let response = request.send_with_digest_auth("username", "password").unwrap();
Expand Down
3 changes: 2 additions & 1 deletion src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ use digest_auth::{AuthContext, AuthorizationHeader, HttpMethod};
use error::Error;
use reqwest::header::HeaderMap;
use reqwest::{RequestBuilder, Response, StatusCode};
use url::Position;

use crate::error::Error::RequestBuilderNotCloneable;
use crate::error::Result;
Expand All @@ -71,7 +72,7 @@ impl WithDigestAuth for RequestBuilder {
match first_response.status() {
StatusCode::UNAUTHORIZED => {
let request = clone_request_builder(self)?.build()?;
let path = request.url().path();
let path = &request.url()[Position::AfterPort..];
let method = HttpMethod::from(request.method().as_str());
let body = request.body().and_then(|b| b.as_bytes());
let answer = parse_digest_auth_header(first_response.headers(), path, method, body, username, password);
Expand Down

0 comments on commit 8412ff3

Please sign in to comment.