使用Hyper的Rust中的客户端证书

使用Hyper的Rust中的客户端证书,rust,hyper,Rust,Hyper,我一直在用Rust编写一个客户端,它使用客户端证书(Pkcs12)向服务器发出请求。虽然已经回答了这个问题,但代码并没有按原样编译。如果我做了一些修改,比如通过调用unwrap()函数替换“?” 代码: let tls_conn = TlsConnector::builder().unwrap() .identity(cert).unwrap() .build().unwrap(); 错误: let tls_conn = TlsConnector::builde

我一直在用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.

我是新手,正在寻求帮助,有人能分享一个编译的示例代码吗?

这里不需要任何
mut
参考。生成器模式是create smth mutable(
TlsConnector::builder().unwrap()
),对其进行变异(
tls\u conn\u 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();
可能重复的