首页 > 解决方案 > 线程 'main' 在 'Err' 值上调用 'Result::unwrap()' 时惊慌失措:UrlRequest(Error(Url(RelativeUrlWithoutBase)))', src\libcore\result.rs:1165:5

问题描述

我正在尝试从 RSS 提要中读取内容。

use rss::Channel;

fn main() {
    let channel = Channel::from_url("adaderana.lk/rss.php").unwrap().to_string();

    println!("{}", channel);
}

我收到了这个错误信息:

 Running `target\debug\news_scrapper.exe` thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: UrlRequest(Error(Url(RelativeUrlWithoutBase)))', src\libcore\result.rs:1165:5 stack backtrace:    0: core::fmt::write
    at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14\/src\libcore\fmt\mod.rs:1028 1: std::io::Write::write_fmt<std::sys::windows::stdio::Stderr>
    at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14\/src\libstd\io\mod.rs:1412 2: std::sys_common::backtrace::_print
    at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14\/src\libstd\sys_common\backtrace.rs:65 3: std::sys_common::backtrace::print
    at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14\/src\libstd\sys_common\backtrace.rs:50 4: std::panicking::default_hook::{{closure}}
    at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14\/src\libstd\panicking.rs:188 5: std::panicking::default_hook
    at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14\/src\libstd\panicking.rs:205 6: std::panicking::rust_panic_with_hook
    at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14\/src\libstd\panicking.rs:464 7: std::panicking::continue_panic_fmt
    at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14\/src\libstd\panicking.rs:373 8: std::panicking::rust_begin_panic
    at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14\/src\libstd\panicking.rs:302 9: core::panicking::panic_fmt
    at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14\/src\libcore\panicking.rs:139 10: core::result::unwrap_failed
    at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14\/src\libcore\result.rs:1165 11: core::result::Result<rss::channel::Channel, rss::error::Error>::unwrap<rss::channel::Channel,rss::error::Error>
    at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14\src\libcore\result.rs:933 12: news_scrapper::main
    at .\src\main.rs:4   13: std::rt::lang_start::{{closure}}<()>
    at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14\src\libstd\rt.rs:61   14: std::rt::lang_start_internal::{{closure}}::{{closure}}
    at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14\/src\libstd\rt.rs:48 note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace. error: process didn't exit successfully: `target\debug\news_scrapper.exe` (exit code: 101)

如果有人可以帮助我,我将不胜感激。

标签: rustrss

解决方案


错误的相关部分是第一行:

thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: UrlRequest(Error(Url(RelativeUrlWithoutBase)))

该错误Error(Url(RelativeUrlWithoutBase))应该是问题所在的线索。

您需要将完整的 URL 传递给Channel::from_url.


推荐阅读