问题标签 [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.
rust - 如何阅读基于 Tokio 的 Hyper 请求的整个正文?
我想使用 Hyper 的当前 master 分支编写一个服务器,它保存由 POST 请求传递的消息并将此消息发送到每个传入的 GET 请求。
我有这个,主要是从 Hyper 示例目录中复制的:
如何将req.body()
(似乎是 a Stream
of Chunks
)变成 a Vec<u8>
?我想我必须以某种方式返回一个Future
消耗Stream
a并将它变成一个单一的Vec<u8>
,也许是fold()
. 但我不知道该怎么做。
unit-testing - 如何测试超服务器 HTTP 处理函数?
我的应用程序使用hyper crate 通过 HTTP 提供一些数据。核心是一个处理函数,如下所示:
Hyper 将为每个 HTTP 请求调用此函数,并提供Request
req
和Response
res
变量。
我想对我handle
的函数进行单元测试,所以我调用该函数,提供一个Request
and Response
,并断言Response
已用于发送预期的数据(“Hello”)。
我正在尝试实例化一个Request
和一个Response
对象,以传递给handle
函数。为此,需要几个依赖项,我需要创建它们。为此,我最终实现了一个模拟NetworkStream
:
但是,实例化Request
恐慌:
我的模拟设置中的错误在哪里?有没有更直接的方法来测试这样一个处理函数而没有这么多样板代码?
rust - 如何在运行时在 Hyper 中设置原始标头?
我正在尝试Response
在运行时在 Hyper 上设置标头。在实际代码中,标头来自一个文件,所以我不知道它们在编译时是什么。不幸的是,我已经翻阅了文档和我能找到的所有示例,但还没有看到有人这样做。这是代码:
错误:
看起来set_raw
需要一些静态的东西,但我不确定重构它的最佳选择是什么。responder
必须是静态的吗?这似乎是错误的。
ssl - 如何在 Rust 中使用客户端证书发出请求
我有一个使用 Docker 容器部署在 Bluemix 中的微服务项目。所有微服务都是用 Java 编写的,并且使用 JKS 文件进行通信。
我还使用 Express.js 在 Node.js 中开发了一个微服务。为了使用其他微服务,我使用了带有feature 和 a的 Request 模块,如下所示:option.agentOptions
pfx file
我尝试将 Solicit crate与HTTPS 的默认示例一起使用,但它失败了:
我找不到另一个 crate、库或框架来制作它,我该如何提出这个请求?
编辑
显然,由于缺乏维护,Solicit 不能替代它,因此它不再是该问题的替代解决方案,这就是原因。
multithreading - 如何从另一个线程使用 hyper::client?
我有多个线程执行一些繁重的操作,我需要在工作中使用客户端。我使用 Hyper v0.11 作为 HTTP 客户端,并且我想重用连接,因此我需要共享相同hyper::Client
的连接以保持打开连接(在keep-alive
模式下)。
客户端在线程之间不可共享(它不实现Sync
or Send
)。这是我尝试做的代码的一个小片段:
此代码无法编译:
有没有办法从不同的线程或其他方法重用同一个客户端?
rust - 使用 Hyper HTTP 客户端实现重试
我正在尝试在使用Hyper v0.11构建的客户端中实现重试,但我找不到将请求重用于不同尝试的方法:
这是编译错误:
错误很明显,但我不知道如何解决它。
rust - 如何使用 Rust Hyper HTTP 客户端将请求绑定到特定的网络接口?
我有一个具有多个网络接口的 Linux 服务器。每个接口都有自己的 IP 地址。如何通过指定 IP 地址来强制 HTTP 请求使用特定接口?就像curl --interface命令行选项一样。
rust - 在 Iron 和 Hyper 中重用 hyper::client 和 tokio_core
我在 Iron 处理程序中发出客户请求。如何重复使用 TokioCore
和 Hyper 的Client
?我正在使用超 0.11.0 和 tokio-core 0.1。
rust - 如何将带有默认处理程序的 hyper::server::Server 存储为构造函数中的结构字段?
我正在尝试将 a 存储hyper::server::Server
为我的结构的成员(struct MyApp
如下)。例如,我可以从我的程序的main()
功能中做到这一点。
我怎样才能在我的结构的MyApp::new()
方法中做到这一点?我想我需要in的具体类型。然而,尽管尝试,我无法(正确地)为这个闭包指定一个具体的类型。F
MyApp<F>
我不知道该怎么做。我认为Box
闭包可以通过允许我将闭包作为具体类型传递来起作用,并且当我在 中执行此操作时确实如此main()
,但不是MyApp::new()
。我希望有一种方法可以在稳定的 rust 中做到这一点,因为我真的很想实现一个包含超级服务器的结构。
这是我的结构:
这是有效的完整代码 - 它将MyApp.hyper_server
字段设置为main()
:
如果我创建一个MyApp::new()
函数并从中调用它main()
,我无法弄清楚如何避免编译器错误。
编译器错误是这样的:
python - Hyper HTTP2 自定义 SSLContext 错误
我正在尝试向服务器(虚拟托管)发出 HTTP2 请求,该服务器根据主机标头值(SNI)提供 SSL 证书。
Python 的 Hyper-h2 包不支持 SNI 或禁用证书验证! https://hyper.readthedocs.io/en/latest/advanced.html#ssl-tls-certificate-verification
禁用证书验证的一种方法是使用自定义 SSLContext,并陷入协议断言错误
使用自定义 SSLContext 进行 HTTP2 调用的基本代码:
错误 :
编辑/更新:现在我学会了如何正确构建上下文init_context()
,当向启用 SNI 的服务器发出请求时,问题仍然存在。
输出:
需要一种方法来在 Hyper 中指定 SNI 或 Curl 等效 --resolve 功能