问题标签 [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 回答
1038 浏览

rust - 为什么从 Hyper crate 多次导入失败?

我正在使用 Rust 开发一个非常简单的 HTTP 客户端,它建立在hyperGitHubcrates.io) crate 之上。

当我尝试使用(以及使用)examples/client.rs在新的 Cargo 项目中复制文件时,我收到多个错误,原因是从.cargo buildrustc src/main.rshyper

这是我的顶部main.rs

除了一些注释外,该文件的其余部分与存储库中的examples/client.rs文件相同hyper

在编译时,我收到以下错误:

如果它可能导致这个问题,这里是我的内容Cargo.toml

一些导入实际上是有效的,所以假设存储库中的示例是最新的,我真的不知道出了什么问题。crate 的源文件看起来像是暴露了所涉及的类型,但我对 Rust 很陌生,所以我可能误读了这些文件。

0 投票
1 回答
139 浏览

rust - 我该如何解决这个终身问题?

在下面的代码stringInto<Body<'a>>RequestParameters<'a>. 我理解为什么,因为在方法完成后string进入范围内into并且不再在范围内,但Body<'a>会保留对它的引用。

至少,这就是我认为string持续时间不够长的原因。

我不明白的是如何构造这段代码来修复string的生命周期。

此代码的目标是将 HashMap(例如 of "a"to "b")转换为 POST 请求正文的字符串("?a=b"例如 )。如果有更好的方法可以做到这一点,请告诉我,但我会从中受益匪浅的是了解如何解决这个终身问题。

如果我对为什么string活得不够长有误,也请告诉我。我仍在努力掌握 Rust 中的生命周期系统,因此弄清楚这一点将对我有很大帮助。

0 投票
1 回答
1039 浏览

amazon-s3 - 使用原始 https 请求将 AWS API Gateway 服务代理到 S3 文件上传

首先,很抱歉标题太长了。

我已经设置了一个 api 网关作为 s3 代理,因此我可以通过向 api url 发送 PUT 请求来上传文件。该api工作正常(或者至少我认为可以),但似乎我只能正确上传文本文件。

对于上传的文本文件(例如 Content-Type=text/plain),本地文件的大小与上传到 s3 存储桶中的文件大小相同。但是,二进制文件并非如此(例如 Content-Type=application/pdf)。s3 存储桶中的文件更大。当我从 s3 下载二进制文件时,我无法打开它们,它们已损坏。

这是发送请求的 rust 代码,我使用的是hyper 的 http 客户端

正如您从注释掉的代码中看到的那样,我尝试使用 Content-Encoding=base64 并对从文件中读取的字节进行编码以上传。但是 Content-Encoding=base64 似乎不是 s3 接受的有效编码类型。每当我设置 Content-Encoding 时,我都无法完全上传(500:内部服务器错误,我什至看不到 s3 存储桶上大小错误的文件)。但是文本文件运行良好。

以供参考:

0 投票
1 回答
1709 浏览

rust - 如何在 Hyper 处理程序之间共享 HashMap?

我正在尝试通过使用 Hyper 0.10 实现一个简单的内存 URL 缩短器来学习 Rust。我遇到了一个问题,我认为是由于尝试关闭HashMap处理程序中的可变对象引起的:

我是否需要使用一个Arc来共享HashMap线程之间?如果是这样,那会是什么样子?另外,我对这个问题可能完全错了。错误消息对我来说非常神秘。

0 投票
3 回答
3223 浏览

rust - 使用 Hyper 显示响应正文仅显示正文的大小

我尝试使用 Hyper 将 URL 的内容(正文)显示为文本

但是运行这个脚本只会返回正文的大小:

我做错什么了?我是不是误会了什么?

0 投票
1 回答
2464 浏览

rust - `for<'r, 'r, 'r> ...` 无法在线程之间安全发送

我学习了 Rust,并尝试构建一个基于 hyper 的微路由系统(它只是为了学习目的,我知道框架存在)。

我不知道如何与hyper::server::Handler. 我阅读了错误消息,但不幸的是,我不明白如何修复它(大多数时候,rust 编译器只是说要修复什么,现在我不确定)。

这是我尝试过的(非)工作过度简化的示例:

错误是:

如果我使用一个简单的整数,它可以工作,但不能使用Route类型。

因此,该特征存在问题,并且“无法在线程之间安全地发送”。阅读hyper文档,我添加了一个Mutex,但我一定很笨,我不知道我在做什么,不知道我是应该停止学习 Rust,还是继续尝试。

0 投票
1 回答
344 浏览

rust - 无法创建 hyper::Client,因为编译器无法推断出足够的类型信息

为了试验 Hyper,我从GET 示例开始。除了该示例无法编译(no method `get` in `client`)这一事实之外,我将我的问题提炼为一行:

此代码不会编译:

0 投票
2 回答
178 浏览

multithreading - 为什么 hyper 需要 Handler 实现 Sync 而不是每个线程使用独立的 Handler?

Hyper有以下实现的示例HandlerSync

并声明Handler必须实现Sync,因为Handler可以从不同的线程调用。

对我来说,这听起来像是不必要的性能损失。我更愿意为每个线程设置一个SenderHandler,每个线程都是独立的,这将消除对实现Sync.

我是否误解了 Hyper,Rust 的类型系统,或者这不可能?

0 投票
2 回答
1668 浏览

rust - 使用 Hyper 和 Flate2 读取 gzip 响应

Hyper 具有将fn read(&mut self, buf: &mut [u8]) -> io::Result<usize>HTTP 响应的内容读取到提供的&mut [u8].

Flate2 可以压缩:

我试着把这两件事放在一起:

我得到了错误:

我哪里错了?


编辑:最终的工作解决方案:

0 投票
1 回答
306 浏览

openssl - 同时使用 git2 和 hyper: openssl 链接不止一次

我正在尝试构建同时使用 hyper 和 git2 的东西。现在我遇到了openssl被链接两次的问题。Shepmaster的提示将我带到CargosfeaturesCargos ,我尝试了,但我仍然卡住了。

我遇到的确切错误cargo build如下:

据我所知,git2 和 hyper 都需要 openssl。有谁知道我做错了什么?由于我禁用了 hyper 的默认功能(以及更好的 cookie)openssl 不再需要它。我查看了锁定文件以查看是否openssl需要其他任何东西,但我找不到任何东西。但我仍然得到错误。不幸的是,cargo 并没有告诉我依赖来自哪里。

这是我Cargo.toml的依赖部分和锁定文件:

这是Cargo.lock以防万一。