最近在自己的rust_http_proxy中实现了简单的反向代理,第一版用的是手搓的无连接池版本,大致流程如下:
TcpStream::connect
建立连接conn::http1::Builder
拿到 sender
sender.send_request(new_req)
工作的很正常,但是没有连接池。想到 hyper
官方提供的 reqwest
是有内置连接池的,于是研究了下做了改造,记录下过程中读到的代码。
对于需要输入密码的命令,通常我们不能简单地通过重定向输入(如使用 <
或 <<
)来避免手动输入密码。这是因为这些命令通常会直接从终端读取密码,以确保密码的安全性,不会从标准输入(stdin)读取。但是我们可以使用expect工具来自动输入密码。下面是自动实现kinit认证的步骤。