我注意到Rust没有处理HTTP的内置库,它只有一个处理原始IP和TCP协议的net
模块。
我需要获取URL的&str
,发出HTTP GET请求,如果成功,则返回与HTML或JSON或其他字符串形式的响应对应的String
或&str
。
它看起来像这样:
use somelib::http;
let response = http::get(&"http://stackoverflow.com");
match response {
Some(suc) => suc,
None => panic!
}
4条答案
按热度按时间0mkxixxg1#
当前解决这个问题的最佳实践是使用
reqwest
crate,如指定的in the Rust Cookbook。下面的代码稍微修改了一下,以便独立运行:正如食谱中提到的,这段代码将同步执行。
另见:
but5z9lq2#
看一下Hyper。
发送GET请求就是这么简单。
您可以在documentation中找到更多示例。
下面是必需的依赖项。
vsnjm48y3#
尝试请求:
ef1yzkbh4#
请注意hyper有很多依赖项,reqwest不仅依赖于
hyper
,而且还带来了很多额外的依赖项,这对您来说可能是个问题,也可能不是,但这是您应该意识到的。另一个你可以考虑的选择是minreq。默认情况下,这个机箱只有一个依赖项(log机箱),还有一些依赖于可选特性的依赖项。例如,如果你激活
https-native
特性,它也会添加native-tls作为依赖项。