mirror of
https://github.com/KaiserY/trpl-zh-cn
synced 2024-11-09 00:43:59 +08:00
Merge pull request #789 from kwkwc/fix
Update ch20-01-single-threaded.md
This commit is contained in:
commit
25416357b1
@ -73,7 +73,7 @@ Connection established!
|
||||
|
||||
我们创建了一个 `http_request` 变量来收集浏览器发送给服务端的请求行。这里增加了 `Vec<_>` 类型注解表明希望将这些行收集到一个 vector 中。
|
||||
|
||||
`BufReader` 实现了 `std::io::BufRead` trait,它提供了 `lines` 方法。`lines` 方法通过遇到换行符(newline)字节就切分数据流的方式返回一个 `Result<String,std::io::Error>` 的迭代器。为了获取每一个 `String`,通过 map 并 `unwrap` 每一个 `Result`。如果数据不是有效的 UTF-8 编码或者读取流遇到问题时,`Result` 可能是一个错误。一如既往生产环境的程序应该更优雅地处理这些错误,不过出于简单的目的我们选择在错误情况下停止程序。
|
||||
`BufReader` 实现了 `std::io::BufRead` trait,它提供了 `lines` 方法。`lines` 方法通过遇到换行符(newline)字节就切分数据流的方式返回一个 `Result<String, std::io::Error>` 的迭代器。为了获取每一个 `String`,通过 map 并 `unwrap` 每一个 `Result`。如果数据不是有效的 UTF-8 编码或者读取流遇到问题时,`Result` 可能是一个错误。一如既往生产环境的程序应该更优雅地处理这些错误,不过出于简单的目的我们选择在错误情况下停止程序。
|
||||
|
||||
浏览器通过连续发送两个换行符来代表一个 HTTP 请求的结束,所以为了从流中获取一个请求,我们获取行直到它们不为空。一旦将这些行收集进 vector,就可以使用友好的 debug 格式化打印它们,以便看看 web 浏览器发送给服务端的指令。
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user