LINUX.ORG.RU

Как правильно делать http сервер в hyper

 


0

2

Делаю по документации конструкцию типа:

        ...
        let maker = make_service_fn(move |cnn| async move {
            println!("get conn");
            Ok::<_, Infallible>(service_fn(move |req| {
                println!("in service fn");
                Self::handle(handlers, req)
            }))
        });
        println!("run on: {:?}", self.addr);
        let server = Server::bind(&self.addr).serve(maker);
        if let Err(err) = server.await {
            println!("server error: {:?}", err)
        }
        ...

Сервер запускается на 0.0.0.0:8421. Когда дергаю его курлом, то сообщение get conn выводится, а in service fn никогда. ЧЯДНТ?

★★★★★

ЧЯДНТ?

Не приводите MRE. А если попытаться заняться телепатией, то возможно не включена фича http1 в hyper. curl в этом случае должен выдавать ошибку

red75prim ★★★
()
Ответ на: комментарий от red75prim

Да, все так и было. Было включено только http2

Aswed ★★★★★
() автор топика
Ответ на: комментарий от red75prim

Неожиданно. В таких непонятных ситуациях также полезно вспомнить про tcpdump/wireshark.

dvetutnev
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.