2016-12-11 12 views
0

하이퍼 프레임 워크로 리버스 프록시를 작성하여 Rust를 배우고 싶습니다. 내 complete project is on GitHub. 일 다음과 같은 컴파일 오류와 함께 실패하지 않습니다하이퍼와 함께 녹에서 웹 서버를 시작하려면 어떻게해야합니까?

extern crate hyper; 

use hyper::Client; 
use hyper::server::{Server, Request, Response}; 
use std::io::Read; 

fn pipe_through(req: Request, res: Response) { 
    let client = Client::new(); 
    // Why does the response have to be mutable here? We never need to modify it, so we should be 
    // able to remove "mut"? 
    let mut response = client.get("http://drupal-8.localhost/").send().unwrap(); 
    // Print out all the headers first. 
    for header in response.headers.iter() { 
     println!("{}", header); 
    } 
    // Now the body. This is ugly, why do I have to create an intermediary string variable? I want 
    // to push the response directly to stdout. 
    let mut body = String::new(); 
    response.read_to_string(&mut body).unwrap(); 
    print!("{}", body); 
} 

Server::http("127.0.0.1:9090").unwrap().handle(pipe_through).unwrap(); 

가 :

error: expected one of `!` or `::`, found `(` 
    --> src/main.rs:23:13 
    | 
23 | Server::http("127.0.0.1:9090").unwrap().handle(pipe_through).unwrap(); 
    |   ^

http()에 내 전화가 정확하지 나는 explained in the documentation으로 리스너를 시작하기에 붙어있어? 설명서에 표시된대로 새 서버를 만들어야하지 않습니까?

+1

https://github.com/hyperium/hyper/blob/0.9.x/examples/server.rs – Stargateur

답변

3

녹의 모든 표현식은 함수 내에 있어야하므로 fn main()에서 서버를 시작해야합니다. 그렇다면 그것은 작동합니다!