1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
use std::io::prelude::*; use std::net::{TcpStream, ToSocketAddrs}; use std::str; use std::io::{Error, ErrorKind}; pub fn get(host: &str) -> std::io::Result<String> { let mut host_addr = host.to_socket_addrs()?; let mut stream = TcpStream::connect(host_addr.next().unwrap())?; let request = format!( "GET / HTTP/1.1\nHost: {}\nUser-Agent: casablanca/0.0.1\n\n", host ); stream.write(&request.as_bytes())?; let mut buffer = vec![0u8; 1024]; stream.read(&mut buffer)?; let decode = match str::from_utf8(&buffer) { Ok(s) => s, Err(_) => return Err(Error::new(ErrorKind::Other, "error happened in from_utf8 function")), }; Ok(decode.to_string()) }