首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么在Option::unwrap()创建一个Reqwest客户端会出现恐慌?

为什么在Option::unwrap()创建一个Reqwest客户端会出现恐慌?
EN

Stack Overflow用户
提问于 2018-11-14 15:56:30
回答 1查看 400关注 0票数 0
代码语言:javascript
复制
extern crate reqwest;

fn main() {
    let client = reqwest::Client::new();
}

当我运行这个的时候,我得到了这个错误。

代码语言:javascript
复制
thread 'main' panicked at 'called `Option::unwrap()` on a `None` value', libcore/option.rs:345:21

我也尝试过使用构建器,但错误仍然存在。

代码语言:javascript
复制
extern crate reqwest;

fn main() {
    let mut client = reqwest::Client::builder(); // Panics here 
    match client.build() {
        Err(e) => {println!("{:?}", e);}
        _ => {}
    }
}

这里是这段代码的全栈回溯。

代码语言:javascript
复制
    thread 'main' panicked at 'called `Option::unwrap()` on a `None` value', libcore/option.rs:345:21
    stack backtrace:
       0: std::sys::unix::backtrace::tracing::imp::unwind_backtrace
             at libstd/sys/unix/backtrace/tracing/gcc_s.rs:49
   1: std::sys_common::backtrace::print
             at libstd/sys_common/backtrace.rs:71
             at libstd/sys_common/backtrace.rs:59
   2: std::panicking::default_hook::{{closure}}
             at libstd/panicking.rs:211
   3: std::panicking::default_hook
             at libstd/panicking.rs:227
   4: std::panicking::rust_panic_with_hook
             at libstd/panicking.rs:511
   5: std::panicking::continue_panic_fmt
             at libstd/panicking.rs:426
   6: rust_begin_unwind
             at libstd/panicking.rs:337
   7: core::panicking::panic_fmt
             at libcore/panicking.rs:92
   8: core::panicking::panic
             at libcore/panicking.rs:53
   9: <core::option::Option<T>>::unwrap
             at /checkout/src/libcore/macros.rs:20
  10: openssl::ssl::SslContextBuilder::set_options
             at /home/ubuntu/.cargo/registry/src/github.com-1ecc6299db9ec823/openssl-0.9.24/src/ssl/mod.rs:905
  11: openssl::ssl::connector::ctx
             at /home/ubuntu/.cargo/registry/src/github.com-1ecc6299db9ec823/openssl-0.9.24/src/ssl/connector.rs:42
  12: openssl::ssl::connector::SslConnectorBuilder::new
             at /home/ubuntu/.cargo/registry/src/github.com-1ecc6299db9ec823/openssl-0.9.24/src/ssl/connector.rs:67
  13: native_tls::imp::TlsConnector::builder
             at /home/ubuntu/.cargo/registry/src/github.com-1ecc6299db9ec823/native-tls-0.1.5/src/imp/openssl.rs:186
  14: native_tls::TlsConnector::builder
             at /home/ubuntu/.cargo/registry/src/github.com-1ecc6299db9ec823/native-tls-0.1.5/src/lib.rs:390
  15: reqwest::async_impl::client::ClientBuilder::new
             at /home/ubuntu/.cargo/registry/src/github.com-1ecc6299db9ec823/reqwest-0.8.6/src/async_impl/client.rs:79
  16: reqwest::client::ClientBuilder::new
             at /home/ubuntu/.cargo/registry/src/github.com-1ecc6299db9ec823/reqwest-0.8.6/src/client.rs:63
  17: reqwest::client::Client::builder
             at /home/ubuntu/.cargo/registry/src/github.com-1ecc6299db9ec823/reqwest-0.8.6/src/client.rs:281
  18: project::proj::tp_app::uploader::start
             at src/proj/tp_app/uploader.rs:4
EN

回答 1

Stack Overflow用户

发布于 2018-11-14 15:58:16

引用the documentation of reqwest::Client::new

如果无法创建或初始化本机TLS后端,此方法将死机。如果您希望将失败作为Error而不是死机来处理,请使用Client::builder()

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53295387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档