1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
use address::Address; use errors::Error; use net_listener::NetListener; use tiny_http::{Server, Response}; pub struct HttpListener { addr: String } impl NetListener for HttpListener{ fn new(addr: Address) -> Result<Box<HttpListener>, Error>{ Ok(Box::new(HttpListener{ addr: String::from(addr.string()), })) } fn listen(&self) -> Result<(), Error>{ let server = Server::http(self.addr.as_str()); if server.is_err() { return Err(Error::ListenError); } let server = server.unwrap(); for request in server.incoming_requests() { println!("received request! method: {:?}, url: {:?}, headers: {:?}", request.method(), request.url(), request.headers() ); let response = Response::from_string("hello world"); request.respond(response); } Ok(()) } fn handle_get(&self) -> Result<(), Error> { Ok(()) } fn handle_post(&self) -> Result<(), Error> { Ok(()) } }