Merge pull request #384 from Freaky/linkchecker-headers

link_checker: Set Accept header
This commit is contained in:
Vincent Prouillet 2018-08-26 11:14:13 +02:00 committed by GitHub
commit f98efe5311
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -2,11 +2,11 @@ extern crate reqwest;
#[macro_use] #[macro_use]
extern crate lazy_static; extern crate lazy_static;
use reqwest::header::{qitem, Accept, Headers};
use reqwest::{mime, StatusCode};
use std::collections::HashMap; use std::collections::HashMap;
use std::error::Error; use std::error::Error;
use std::sync::{Arc, RwLock}; use std::sync::{Arc, RwLock};
use reqwest::StatusCode;
#[derive(Clone, Debug, PartialEq)] #[derive(Clone, Debug, PartialEq)]
pub struct LinkResult { pub struct LinkResult {
@ -54,19 +54,30 @@ pub fn check_url(url: &str) -> LinkResult {
} }
} }
let mut headers = Headers::new();
headers.set(Accept(vec![qitem(mime::TEXT_HTML), qitem(mime::STAR_STAR)]));
let client = reqwest::Client::new();
// Need to actually do the link checking // Need to actually do the link checking
let res = match reqwest::get(url) { let res = match client.get(url).headers(headers).send() {
Ok(response) => LinkResult { code: Some(response.status()), error: None }, Ok(response) => LinkResult {
Err(e) => LinkResult { code: None, error: Some(e.description().to_string()) }, code: Some(response.status()),
error: None,
},
Err(e) => LinkResult {
code: None,
error: Some(e.description().to_string()),
},
}; };
LINKS.write().unwrap().insert(url.to_string(), res.clone()); LINKS.write().unwrap().insert(url.to_string(), res.clone());
return res; res
} }
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::{LINKS, check_url}; use super::{check_url, LINKS};
#[test] #[test]
fn can_validate_ok_links() { fn can_validate_ok_links() {