TODO
Step 2 读取请求
了解 HTTP 请求的格式:
Method Request-URI HTTP-Version CRLF
headers CRLF
CRLF
message-body
使用 stream.read() 读取请求,并打印出来
查看提示
use std::io::prelude::*;
use std::net::TcpStream;
在 main 函数中调用新的 handle_connection 函数并向其传递 stream 来处理流。
新建 handle_connection() 函数。
使用 stream.read(&mut buffer) 方式将流的请求读取到 buffer 里面,并使用 String::from_utf8_lossy(&buffer[..]) 方式取出并打印出来。
浏览页面 http://127.0.0.1:7878/ ,查看后台打印出的请求详情。
Step 2 answer
use std::io::prelude::*;
use std::net::TcpStream;
use std::net::TcpListener;
fn main() {
let listener = TcpListener::bind("127.0.0.1:7878").unwrap();
for stream in listener.incoming() {
let stream = stream.unwrap();
handle_connection(stream);
}
}
fn handle_connection(mut stream: TcpStream) {
let mut buffer = [0; 1024];
stream.read(&mut buffer).unwrap();
println!("Request: {}", String::from_utf8_lossy(&buffer[..]));
}