committed by
Sean McArthur
parent
9e70497781
commit
a54447c1d9
@@ -198,24 +198,32 @@ impl<'a> RequestBuilder<'a> {
|
||||
|
||||
try!(req.send())
|
||||
};
|
||||
body.take();
|
||||
|
||||
match res.status {
|
||||
let should_redirect = match res.status {
|
||||
StatusCode::MovedPermanently |
|
||||
StatusCode::Found |
|
||||
StatusCode::SeeOther => {
|
||||
body = None;
|
||||
match method {
|
||||
Method::Get | Method::Head => {},
|
||||
_ => {
|
||||
method = Method::Get;
|
||||
}
|
||||
}
|
||||
true
|
||||
},
|
||||
StatusCode::TemporaryRedirect |
|
||||
StatusCode::PermanentRedirect => true,
|
||||
_ => false,
|
||||
};
|
||||
|
||||
if should_redirect {
|
||||
//TODO: turn this into self.redirect_policy.check()
|
||||
if redirect_count > 10 {
|
||||
return Err(::Error::TooManyRedirects);
|
||||
}
|
||||
redirect_count += 1;
|
||||
|
||||
method = match method {
|
||||
Method::Post | Method::Put => Method::Get,
|
||||
m => m
|
||||
};
|
||||
|
||||
headers.set(Referer(url.to_string()));
|
||||
|
||||
let loc = {
|
||||
@@ -239,19 +247,16 @@ impl<'a> RequestBuilder<'a> {
|
||||
}
|
||||
};
|
||||
|
||||
debug!("redirecting to '{}'", url);
|
||||
debug!("redirecting to {:?} '{}'", method, url);
|
||||
|
||||
//TODO: removeSensitiveHeaders(&mut headers, &url);
|
||||
|
||||
},
|
||||
_ => {
|
||||
} else {
|
||||
return Ok(Response {
|
||||
inner: res
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// A Response to a submitted `Request`.
|
||||
|
||||
Reference in New Issue
Block a user