1

HTTP リクエストを作成するために Hyper を使用したい。呼び出しは正常に機能しますが、 andClient::getなどの他のメソッドはコンパイル エラーを引き起こします。Client::postClient::head

extern crate futures;
extern crate hyper;
extern crate tokio_core;

use std::io::{self, Write};
use futures::{Future, Stream};
use hyper::Client;
use tokio_core::reactor::Core;

fn main() {
    let mut core = Core::new().unwrap();
    let client = Client::new(&core.handle());

    let uri = "http://httpbin.org/ip".parse().unwrap();
    let work = client.post(uri).and_then(|res| {
        // if post changed to get it will work correctly
        println!("Response: {}", res.status());

        res.body("x=z")
            .for_each(|chunk| io::stdout().write_all(&chunk).map_err(From::from))
    });
    core.run(work).unwrap();
}

エラー:

error[E0599]: no method named `post` found for type `hyper::Client<hyper::client::HttpConnector>` in the current scope
  --> src/main.rs:15:23
   |
15 |     let work = client.post(uri).and_then(|res| {
   |                       ^^^^

error[E0277]: the trait bound `[u8]: std::marker::Sized` is not satisfied
  --> src/main.rs:20:24
   |
20 |             .for_each(|chunk| io::stdout().write_all(&chunk).map_err(From::from))
   |                        ^^^^^ `[u8]` does not have a constant size known at compile-time
   |
   = help: the trait `std::marker::Sized` is not implemented for `[u8]`
   = note: all local variables must have a statically known size
4

1 に答える 1