4 个版本
使用旧的 Rust 2015
0.1.3 | 2016年8月20日 |
---|---|
0.1.2 | 2016年4月24日 |
0.1.1 | 2016年4月24日 |
0.1.0 | 2016年4月23日 |
#38 in #hyper-client
用于 bitex
12KB
188 行
Curs.
Hyper HTTP 客户端库,感觉更像 curl。支持文件上传。
它感觉像 curl,
这个 HTTP 客户端,
基于 Hyper,
巨人的肩膀。
让你上传文件,
这是个不错的开始,
它添加了自己的头部,
使其成为多部分。
解码响应 JSON,
对你的 REST 有好处,
去看看一些例子,
它们都在 /test 中。
代码相当简单,
并且易于消化,
如果你想贡献,
发送你的 pull 请求。
安装
[dependencies]
curs = "0.1"
它看起来是什么样子?
在 文档 中查看实际示例
许可证
根据荣耀的 WTFPL 许可证
基本上是公共领域,即使在公共领域不是法律选项的司法管辖区也是如此。
lib.rs
:
Curs:为 Rust 用户提供的 curl。基于 Hyper。支持文件上传。JSON REST API 客户端。
发出请求,添加参数和文件,或者 JSON 主体,curs 会自动选择正确的主体格式并添加任何所需的头部。
也可以添加原始请求体,但如果你需要无偏见的灵活性,你可以尝试回退到 hyper,重新导出为 curs::hyper::client 以方便使用。
然后你可以选择反序列化 JSON 响应。或者直接使用它们作为文本。
示例
// This example pretty much uses the whole library. Notice hyper is re-exported by curs.
// Uploads a file, and some params doing a POST request to a stubbed server.
// The actual curs imports.
extern crate curs;
use curs::{Request, FileUpload, DecodableResult, Method};
// Just stuff needed for this particular test.
extern crate http_stub;
use http_stub as hs;
use std::env;
use curs::hyper::header::UserAgent;
fn main(){
// Nevermind this stub HTTP server. Find the actual curs code below.
let url = hs::HttpStub::run(|s|{ s.send_body(r#"["foo", "bar"]"#) });
let file = FileUpload{
name: "shim.png".to_string(),
mime: None,
path: &env::current_dir().unwrap().join("tests/fixtures/test.png")};
let response : Vec<String> = Request::new(Method::Post, &*format!("{}/some_post", url))
.params(vec![("one","value_one"), ("two", "value_two")])
.header(UserAgent("morcilla-firefox".to_string()))
.files(vec![file])
.send().decode_success().unwrap();
assert_eq!(response, vec!["foo", "bar"]);
}
依赖关系
~7MB
~156K SLoC