使用 Hyper 的 Rust 客户端证书
Client certificate in Rust using Hyper
我一直在用 Rust 编写一个客户端,它向带有客户端证书 (Pkcs12) 的服务器发出请求。虽然这已得到解答 ,但代码并未按原样编译。如果我进行一些修改,例如替换“?”通过调用 unwrap() 函数,
代码:
let tls_conn = TlsConnector::builder().unwrap()
.identity(cert).unwrap()
.build().unwrap();
错误:
let tls_conn = TlsConnector::builder().unwrap()
| ____________________^
18 | | .identity(cert).unwrap()
| |________________________________^ cannot move out of borrowed content.
我重写了上面这行代码,拆成多行调试:
let ref mut init_tls_conn_builder = TlsConnector::builder().unwrap();
let ref mut tls_conn_builder = init_tls_conn_builder.identity(cert).unwrap();
let tls_conn = tls_conn_builder.build().unwrap();
我得到如下错误:
let tls_conn = tls_conn_builder.build().unwrap();
| ^^^^^^^^^^^^^^^^ cannot move out of borrowed content.
我是 Rust 的新手,正在寻求帮助,谁能分享一个可以编译的示例代码?
此处不需要任何 mut
参考。构建器模式是创建 smth 可变 (TlsConnector::builder().unwrap()
),对其进行变异 (tls_conn_builder.identity(cert)
),然后获取结果 (build
)。试试这个代码
let mut tls_conn_builder = TlsConnector::builder().unwrap();
tls_conn_builder.identity(cert);
let tls_conn = tls_conn_builder.build().unwrap();
我一直在用 Rust 编写一个客户端,它向带有客户端证书 (Pkcs12) 的服务器发出请求。虽然这已得到解答
代码:
let tls_conn = TlsConnector::builder().unwrap()
.identity(cert).unwrap()
.build().unwrap();
错误:
let tls_conn = TlsConnector::builder().unwrap()
| ____________________^
18 | | .identity(cert).unwrap()
| |________________________________^ cannot move out of borrowed content.
我重写了上面这行代码,拆成多行调试:
let ref mut init_tls_conn_builder = TlsConnector::builder().unwrap();
let ref mut tls_conn_builder = init_tls_conn_builder.identity(cert).unwrap();
let tls_conn = tls_conn_builder.build().unwrap();
我得到如下错误:
let tls_conn = tls_conn_builder.build().unwrap();
| ^^^^^^^^^^^^^^^^ cannot move out of borrowed content.
我是 Rust 的新手,正在寻求帮助,谁能分享一个可以编译的示例代码?
此处不需要任何 mut
参考。构建器模式是创建 smth 可变 (TlsConnector::builder().unwrap()
),对其进行变异 (tls_conn_builder.identity(cert)
),然后获取结果 (build
)。试试这个代码
let mut tls_conn_builder = TlsConnector::builder().unwrap();
tls_conn_builder.identity(cert);
let tls_conn = tls_conn_builder.build().unwrap();