8得票1回答
在同一端口上运行Websocket和HTTP服务器(Rust,hyper)

我希望使用Rust、Hyper和websocket-rs编写一个Web服务器。该Web服务器必须能够处理HTTP请求和WebSocket请求在同一端口上。我使用了官方示例(async-server.rs: https://github.com/cyderize/rust-websocket/b...

12得票1回答
Hyper在HTTPS URL中显示“无效的Http方案”。

我有hyper = "0.10" 而下面的代码:let client = Client::new(); let mut res = client.get("https://google.com").send().unwrap(); 在Rust中,我收到了一个错误信息,好像它没有SSL支持: ...

19得票3回答
如何读取基于Tokio的Hyper请求的整个主体?

我想使用当前 Hyper 的主支(master branch)编写一个服务器,该服务器会保存由 POST 请求传递的消息,并将此消息发送给每个传入的 GET 请求。 我有以下代码,大部分是从 Hyper 的示例目录中复制来的:extern crate futures; extern crat...

8得票2回答
如何使用multipart/form-data和hyper发布图片?

我正在尝试使用超文本传输协议(HTTP)来上传图片文件,类似于cURL的方式: curl -F smfile=@11.jpg https://httpbin.org/post --trace-ascii - 结果如下: { "args": {}, "data": "", "...

7得票1回答
从Hyper收到请求后,解析JSON并将其转换为Rust中的结构体

我将尝试制作一个Web服务器,接收一些JSON参数,并将它们转换为结构体,然后将其存储在我的应用程序的其他位置。 我有一个名为status.rs的文件中包含这个数据结构。 use serde::{Serialize, Deserialize}; #[derive(Debug, Clone...

8得票2回答
如何在Rust中使用hyper、tokio和futures设置HTTP请求的超时时间?

如何在使用异步Hyper(>=0.11)时为HTTP请求设置超时时间? 以下为没有超时时间的代码示例: extern crate hyper; extern crate tokio_core; extern crate futures; use futures::Future; u...

7得票1回答
如何将超文本响应主体写入文件?

我正在尝试使用tokio编写一个测试程序,从网站抓取文件并将流式响应写入文件。Hyper网站提供的示例使用while循环和.data()方法来处理响应主体,但我想使用.map()和其他几种方式来操作流。 我认为下一个合理的尝试是使用TryStreamExt中的.into_async_read(...

7得票1回答
如何在Hyper处理程序之间共享HashMap?

我正在尝试使用Hyper 0.10实现一个简单的内存URL缩短器,以学习Rust。我遇到了一个问题,我认为是由于在处理程序中尝试关闭可变HashMap引起的: fn post(mut req: Request, mut res: Response, short_uris: &mut ...

15得票1回答
Reqwest比Hyper更高级吗?

根据Hyper.rs文档, 如果您正在寻找方便的HTTP客户端,则可以考虑使用reqwest。如果您正在寻找方便的HTTP服务器,则可以考虑使用warp。这两者都是基于此库构建的。 从API来看,Hyper.rs似乎已经相当高级了。它支持代理、TLS和cookie... 为什么Reqw...

7得票1回答
Hyper中的共享可变状态

我正在尝试在Hyper Web服务器中创建一个计数器来计算它接收到的请求总数。我使用一个 Arc<Mutex<u64>>来存储计数。然而,我还没有找到合适的 move 和 .clone() 的组合来满足闭包的类型。这里有一些代码可以编译,但会在每次请求时重置计数器: ...