stdweb icon indicating copy to clipboard operation
stdweb copied to clipboard

XmlHttpRequest add get_all_response_headers method

Open izissise opened this issue 5 years ago • 0 comments

get_all_response_headers allow one to retrieve all response headers and so they can be iterated over.

Example converting headers to hyper::http::HeaderMap

let xhr = XmlHttpRequest::new();
let raw_headers = xhr.get_all_response_headers();
let headers = match raw_headers {
    Some(rh) => {
        let mut headers = http::header::HeaderMap::new();
        for h in rh.split("\r\n") {
            if h.len() == 0 {
                continue;
            }
            let parts: Vec<&str> = h.split(": ").collect();
            let k = parts[0];
            let k = http::header::HeaderName::from_bytes(k.as_bytes()).unwrap();
            let v = parts[1..].join(": ");
            let v = http::header::HeaderValue::from_str(&v).unwrap();
            headers.append(k, v);
        }
        headers
    },
    None => http::header::HeaderMap::new(),
};

izissise avatar Nov 30 '19 16:11 izissise