问题标签 [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.

0 投票
1 回答
1210 浏览

rust - 调用外部 crate 中定义的宏时未解决的导入

我正在尝试使用hyper crate 中的impl_header宏来实现自定义 HTTP 标头,但它似乎无法解析该hyper::header模块。

这是我的代码:

这是编译器错误:

任何线索为什么会发生这种情况,我该如何解决?

谢谢

0 投票
1 回答
813 浏览

rust - 如何在超 HTTP 服务器处理程序中设置 HTTP 状态代码?

根据文档,我可以status通过调用status_mut(). 不幸的是,处理函数的签名,用于使用 hyper::Server 服务请求包含 immutable Response,所以下面的代码给了我一个错误:

有没有办法在 hyper::server::Server 使用的请求处理程序中设置响应状态代码?

UPD:最后我找到了这个例子。就在源代码中。=*)

0 投票
1 回答
1503 浏览

rust - 使用 convert::Into 和枚举来解包和转换值

我开始对 Rust 感到满意,但仍然有一些事情真的让我在生命周期中绊倒。在这种特殊情况下,我想要做的是有一个枚举,它可能有不同的类型包装为通用参数类,以在 URL 中创建强类型查询参数,尽管特定用例无关紧要,并返回该包装的转换将值转换为 &str。这是我想做的一个例子:

我最终要做的是处理明显的生命周期问题(是的,我很清楚为什么生命周期对于 into() 函数来说不够长):

在我真正想要做的是保证某些参数的静态类型的情况下,这似乎是一个丑陋的解决方法,b/c 现在它是负责正确类型转换的枚举的构造函数。好奇是否有办法做到这一点......是的,在某些时候我需要 &str 因为这是其他地方的参数,特别是:

我经历了很多事情,比如尝试返回 String 而不是&strfrom into(),但这只会导致转换问题与 a map()of String->发生关系&str。从一开始就让元组正确是最简单的事情,而不是在那之后动辄与编译器对抗。

- 更新 -

好的,所以我回到枚举函数中的一个(String,String)元组。into()事实证明,有一个url::form_urlencoded::serialize()与之兼容的功能的“拥有”版本。

但是,现在我也在尝试对 中的查询字符串使用相同的模式hyper::URL,特别是:

然后我尝试map()在 (String,String) 元组中使用的迭代器上使用:

但这会出错:x.0活得不够长。在这种情况下 Ref 似乎是正确的,对吧?如果我不使用 ref,那么它的 k/v 寿命不够长。我在其中缺少什么“简单”的东西吗?

0 投票
1 回答
437 浏览

rust - 无法构建 Hyper - 箱子名称中的无效字符 `-`

我正在尝试运行 Github 自述文件中列出的超级示例。

Cargo.toml 看起来像这样:

但是,当我尝试使用 Cargo run 构建它时,出现以下错误:

我查看了这些不同的 crate,想看看是否可以将“rustc-serialize”更改为“rustc_serialize”,因为我认为 crate 名称不能再有连字符。但是,我找不到任何类似的东西。我真的很想能够解决这个问题,因为我有一种感觉,在 Rust 仍在打磨的时候,我会再遇到几次这个错误。

编辑:版本如下:Rust:1.0.0-beta.2 Hyper:0.3.14 Cargo:0.0.1-pre-nightly(建于 2015-03-09)

0 投票
1 回答
1525 浏览

oauth - 如何获取授权承载标头?

我想为 OAuth 目的获取 Authorization Bearer 标头,但是阅读文档看起来有点混乱

这会产生错误:

src/main.rs:84:56: 84:86 错误:hyper::header::HeaderFormat没有为类型 hyper::header::common::authorization::Authorization<hyper::header::common::authorization::Bearer>[E0277]实现特征

从实现来看,我似乎是正确的:

https://github.com/hyperium/hyper/blob/master/src/header/common/authorization.rs

https://github.com/auth0/rust-api-example/issues/1

0 投票
2 回答
3606 浏览

rust - 使用 Hyper 发出请求时如何设置 User-Agent 标头?

我正在尝试使用 Hyper 库在 Rust 中向 Github 的 API 发出 GET 请求,并在标头中使用用户代理字符串。我没有运气编译.header(UserAgent("string"))。有人愿意提出一种惯用的方式来完成我想要的吗?

0 投票
2 回答
3017 浏览

rust - 使用 Hyper 为 GET 请求传递数据

我正在为 Rust 开发 Twitter API,并且在将参数传递给我的 GET 请求时遇到了问题。我用于请求的代码如下所示。data_body类似于“screen_name=a_user”,授权标头是 Twitter 所需的 OAuth 授权(这不是问题,因为它正在处理我的所有其他请求)。

我开始将它发送到 httpbin.org,这样我就可以看到原始请求。我得到的结果如下所示。

Twitter api 文档给出的 curl 请求在下面有一个 GET 请求的数据部分(我已经用空字符串替换了我的键)。我可以确认这适用于 GET。

ContentType从 Hyper API 中尝试了一堆不同的 s,但无法填充 HTTP 请求的 args 部分。我认为这就是问题所在,但我对 HTTP 没有太多经验,所以我很可能是错的。最终,请求返回一个 403(未经授权),这是由缺少的参数触发的。我知道我的 OAuth 标头正在正确生成,因为它正在处理所有 POST 请求,并且当我从 curl 命令复制随机数和时间戳时,我从 Twitter API 获得签名匹配。

0 投票
1 回答
1482 浏览

post - Hyper POST 请求总是产生 400

我正在尝试使用 Hyper 0.9 向站点发送 POST 请求。该请求适用于curl

和 Python:

但我的 Rust 实现似乎没有通过,总是产生 400。

0 投票
3 回答
4104 浏览

rust - 使用 hyper 和 html5ever 在流中解析 HTML 页面内容

我正在尝试解析 HTTP 请求的 HTML 响应。我使用hyper进行请求,使用html5ever进行解析。HTML 将非常大,我不需要完全解析它——我只需要从标签中识别一些数据,所以我更喜欢流式传输它。从概念上讲,我想做类似的事情:

到目前为止,我想出的是:

这似乎read_to_end是我想调用响应以读取字节的方法,但我不清楚如何将其通过管道传输到 HTML 文档阅读器......如果这甚至可能的话。

文档parse_document说要使用from_utf8或者from_bytes输入是否以字节为单位(它是)。

似乎我需要从响应中创建一个接收器,但这就是我卡住的地方。我也不清楚如何创建事件来监听我感兴趣的标签开始。

我已经查看了 html5ever 的这个示例,它似乎可以执行我想要的操作并遍历 DOM,但是我无法让这个示例本身运行——要么它已经过时,要么卷须/html5ever 太新。这似乎也将 HTML 解析为一个整体而不是一个流,但我不确定。

是否可以对这些库的当前实现做我想做的事情?

0 投票
1 回答
136 浏览

rust - “trait core::ops::Fn<(Request, Response)> is not implemented”用于将连接池传递给 Hyper 处理程序时的闭包

我正在尝试使用Hyperr2d2在 Rust 中构建一个小型 Web 服务,但我遇到了一些关于特征的问题。我无法解析编译器抛出的错误消息,所以我希望有人能帮助我。

考虑以下代码:

我的目标是pool在函数中使用hello. 通过使用闭包,我想,我可以传递一个环境变量,同时仍然不辜负 Hyper 的期望。不幸的是,我收到以下错误:

这取决于pool. 例如,如果我尝试传递一个i64,一切都会膨胀,编译器不会抱怨。