pub struct Response { /* private fields */ }Implementations§
Source§impl Response
impl Response
pub fn new() -> Response
pub fn extend_buffer(&mut self, buffer: &mut Buffer) -> Result<bool, HlsError>
pub fn extend_frame( &mut self, frame: H2Frame, hpack_coding: &mut HackDecode, ) -> Result<bool, HlsError>
pub fn push_raw(&mut self, raw: Vec<u8>)
pub fn header(&self) -> &Header
pub fn header_mut(&mut self) -> &mut Header
pub fn raw_body(&self) -> &[u8] ⓘ
pub fn raw_string(&self) -> String
pub fn clear_raw(&mut self)
pub fn decode_body(&mut self) -> Result<&mut Body, HlsError>
pub fn json(self) -> Result<JsonValue, HlsError>
Sourcepub fn text(self) -> Result<String, HlsError>
pub fn text(self) -> Result<String, HlsError>
Examples found in repository?
examples/m3u8_down.rs (line 59)
56 fn get_key(&mut self) -> Result<(), HlsError> {
57 println!("key url: {}", self.key_url);
58 self.req.set_url(self.key_url.as_str())?;
59 let key = self.req.send_check(Method::GET)?.text()?;
60 println!("key: {}; sequence: {}", key, self.sequence);
61 self.cipher.set_secret_key(key.into_bytes(), Some(self.sequence.to_be_bytes().to_vec()));
62 Ok(())
63 }
64
65 fn download(&mut self) -> Result<(), HlsError> {
66 self.req.set_url(self.index_url.as_str())?;
67 let body = self.req.send_check(Method::GET)?.text()?;
68 // println!("{}", body);
69 for line in body.split("\n") {
70 if line.starts_with("#EXT-X-MEDIA-SEQUENCE:") {
71 self.sequence = line.trim().replace("#EXT-X-MEDIA-SEQUENCE:", "").parse()?;
72 continue;
73 }
74 if line.starts_with("#EXT-X-KEY") {
75 let pos = line.find("URI=\"");
76 if let Some(pos) = pos {
77 self.key_url = line[pos + 4..].trim().replace("\"", "");
78 }
79 if line.contains("=AES-128,") {
80 self.cipher = Cipher::aes_128_cbc();
81 }
82 continue;
83 }
84 if line.starts_with("http") {
85 self.ts_urls.push(line.trim().to_string());
86 }
87 }
88 let mut timeout = Timeout::new();
89 timeout.set_read(5000);
90 timeout.set_write(5000);
91 timeout.set_connect(5000);
92 timeout.set_handle(30000);
93 timeout.set_handle_times(10);
94 self.req.set_timeout(timeout);
95 if !self.key_url.is_empty() { self.get_key()?; }
96 self.down_ts()?;
97 Ok(())
98 }Auto Trait Implementations§
impl Freeze for Response
impl RefUnwindSafe for Response
impl Send for Response
impl Sync for Response
impl Unpin for Response
impl UnwindSafe for Response
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more