使用 nickel.rs 读取请求正文
Reading the request body with nickel.rs
我想向我的 API 发送一个请求并在请求的正文中放入一些二进制数据,但是 nickel.rs 似乎没有办法处理流。
我可以获取 POST 参数并将它们解析为 JSON,但是如何读取正文?
Nickel 建立在 hyper, and the Nickel Request
之上,公开了原始的超级请求:
pub struct Request<'a, 'b, 'k> {
pub origin: HyperRequest<'a, 'k>,
pub route_result: Option<RouteResult<'b>>,
// some fields omitted
}
这反过来又实现了 Read
特征:
#[macro_use] extern crate nickel;
use nickel::Nickel;
use std::io::Read;
fn main() {
let mut server = Nickel::new();
server.utilize(router! {
post "**" => |req, _res| {
let mut body = vec![];
req.origin.read_to_end(&mut body).unwrap();
format!("You posted {} bytes", body.len())
}
});
server.listen("127.0.0.1:6767");
}
我想向我的 API 发送一个请求并在请求的正文中放入一些二进制数据,但是 nickel.rs 似乎没有办法处理流。
我可以获取 POST 参数并将它们解析为 JSON,但是如何读取正文?
Nickel 建立在 hyper, and the Nickel Request
之上,公开了原始的超级请求:
pub struct Request<'a, 'b, 'k> {
pub origin: HyperRequest<'a, 'k>,
pub route_result: Option<RouteResult<'b>>,
// some fields omitted
}
这反过来又实现了 Read
特征:
#[macro_use] extern crate nickel;
use nickel::Nickel;
use std::io::Read;
fn main() {
let mut server = Nickel::new();
server.utilize(router! {
post "**" => |req, _res| {
let mut body = vec![];
req.origin.read_to_end(&mut body).unwrap();
format!("You posted {} bytes", body.len())
}
});
server.listen("127.0.0.1:6767");
}