问题标签 [hyper]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
compiler-errors - 当我在方法签名中使用 hyper::Client 时,为什么会收到错误“类型参数数量错误”?
我想hyper::Client
根据 URL 方案进行配置。为此,我创建了一个小方法:
当我尝试编译它时,我收到以下错误消息:
我不明白为什么它不能编译
- 我已经在 main.rs 中声明了我对超级板条箱的使用
- 我在文件头中声明我的用途
我究竟做错了什么 ?
rust - 是否可以让 Future::and_then 有条件地返回不同的期货?
在我的代码的这个简化版本中,我有时想执行标记的行,有时不执行,可能会返回错误:
我想我可以用这样的东西替换这条线:
因为Error
期货的部分是相同的,并且Item
可以推断出部分。但是,它不起作用。我怎么能做到?
这是我得到的错误:
rust - 嵌套闭包借用失败
我想解析 YAML 文件并将服务中的值用于 HTTP 请求。第 35 行是 main 函数的结尾。
不幸的是,我遇到了一个导致奇怪借用错误的嵌套闭包:
我尝试过了
- 在借用之前克隆它
- 用于
Arc
使其基于计数器, - 修改分配
都无济于事
为什么会这样?我该如何解决这个问题?
rust - 如何在稳定的 Rust 中同步返回在异步 Future 中计算的值?
我正在尝试使用 hyper 来获取 HTML 页面的内容,并希望同步返回未来的输出。我意识到我可以选择一个更好的例子,因为同步 HTTP 请求已经存在,但我更感兴趣的是了解我们是否可以从异步计算中返回一个值。
该示例编译并调用read()
成功,但调用scrap()
恐慌并显示以下错误消息:
我知道在调用.wait()
未来之前我未能正确启动任务,但我找不到如何正确执行它,假设它甚至是可能的。
rust - 如何从超级 POST 请求中提取数据?
我正在尝试制作一个小型应用程序,它将作为接受 GET 和 POST 请求的网络服务器运行。我已经启动并运行它,它接受两个请求,但我不知道如何从 POST 请求中提取数据。下面是让服务器启动并运行的代码:
基本上我想知道的是post_fn
需要什么才能打印出“你好” curl -X POST --data hello 'localhost:3000'
。最终数据将是我反序列化的 JSON 字符串,但我不知道如何首先获得数据。
rust - 解析为未来的元组
在 rust 中,我试图通过.get
使用超级客户端作为元组从请求中提取两位数据来实现未来。问题是生成的类型不起作用。
所以给出一些这样的代码:
我收到一个错误,例如the trait "futures::IntoFuture" is not implemented for
...
我很确定这是因为元组的两个成员是期货并且可以处理,但元组不是,但我不确定如何解析期货的值并将它们放入元组中。
rust - Hyper 中的共享可变状态
我正在尝试在 Hyper Web 服务器中创建一个计数器,用于计算它收到的请求数。我正在使用 aArc<Mutex<u64>>
来保持计数。但是,我无法找出正确的组合move
并.clone()
满足闭包的类型。这是一些可以编译的代码,但会在每个请求上重置计数器:
rust - 使用 hyper 将块流异步写入文件
我正在尝试创建一个简单的函数,使用 hyper 将远程文件下载到本地文件路径。我也需要文件写入是异步的(在我的情况下,我正在使用tokio_fs
它)。这是代码:
但是,我收到以下错误:
从概念上讲,我理解错误的含义:由于 aFnMut
通过可变引用捕获变量,我无法移动捕获的变量。但是,我不明白如何在给出的示例中解决这个问题,因为我需要将流写入Join
未来返回的文件。
write_all
来自trait的方法在Write
这里可以工作,因为它将文件作为可变引用,但问题是它在同一个线程上进行写入。
python - 我正在尝试使用 python 超级库创建一个 http2 多客户端服务器。它只完成第一个请求
我可以使用本教程提供 http2。https://python-hyper.org/projects/h2/en/stable/basic-usage.html。这个版本运行良好。但是由于阻塞套接字,该服务器一次只能为一个客户端提供服务。然后我寻找基于系统调用的多客户端服务器实现select()
。本教程向我展示了如何做到这一点。https://realpython.com/python-sockets/。我合并了两个教程,以创建一个 http2 多客户端服务服务器。这就是我最终的结果:
服务器.py
如果我运行 python server.py,并在另一个终端中运行超级 CLI 工具,以发送 http2 请求 ( hyper --h2 GET http://localhost:8080/
)。第一个请求成功,我可以看到生成的事件,超级工具显示响应并很好地退出。之后再次发送相同的超级命令,请求没有生成任何事件,CLI 工具也挂起。你能帮我解决问题吗?
rust - 超级服务器在将来返回 Async::NotReady 时断开连接
我正在尝试使用未来的请求运行具有异步响应的超级服务器。当 future 的poll
方法被调用并返回Async::NotReady
时,连接就被断开了(“dropping I/O source: 0”)。我预计该poll
方法会被多次调用,直到它返回Async::Ready
。
显示的示例返回一个异步 io 未来,它正在做(我猜)同样的事情。
为什么future的poll
函数只调用一次,为什么在future返回后hyper会断开连接Async::NotReady
?
示例代码:(超版本为:v0.12.21)