gpt4 book ai didi

rust - 使用 Hyper 的 Rust 客户端证书

转载 作者:行者123 更新时间:2023-11-29 08:29:36 26 4
gpt4 key购买 nike

我一直在用 Rust 编写一个客户端,它向带有客户端证书 (Pkcs12) 的服务器发出请求。虽然这已经得到回答How to make a request with client certificate in Rust ,代码不会按原样编译。如果我进行一些修改,例如替换“?”通过调用 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)),然后得到结果 ( 构建)。试试这段代码

let mut tls_conn_builder = TlsConnector::builder().unwrap();
tls_conn_builder.identity(cert);
let tls_conn = tls_conn_builder.build().unwrap();

关于rust - 使用 Hyper 的 Rust 客户端证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49976164/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com