问题标签 [typhoeus]

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 回答
137 浏览

interceptor - Ruby 2 使用 Typhoeus 拦截请求

我想在使用typhoeus命中请求之前更改查询参数。什么应该是正确的方法?我们在 Ruby 中是否有像 Java 那样的拦截器,我应该像在 Rails 中那样使用 before_filter 还是在 Ruby 中使用元编程?我刚刚检查了Typhoeus::Request::Before 模块来挂钩请求。谁能帮助我如何实施它?

0 投票
1 回答
233 浏览

ruby-on-rails - 无法从 Ruby 读取大的 json 响应

我有两个项目,我称之为服务器和客户端项目。

在服务器端,我使用的是 Web 服务。我向这个 Web 服务发送了一个特定的请求,它返回给我一个很长的 JSON 响应。然后我可以做一些业务逻辑,并返回我的响应。

当我从 Web 浏览器发送请求时,我可以验证服务器端是否返回了我所期望的,一个非常大的 JSON 对象(大约 4000 行长)。

当我从客户端向服务器端发送请求时,问题就开始了。我看不到完整的回复。我只能看到前 10 行和下 3 行。中间部分没了!

我尝试了三个 Ruby gem,它们是 Rest-client、Typhoeus 和 Faraday。你可以在下面看到我是如何使用它们的。

PS 我没有短回复的问题。但是当涉及到大/大/长响应时,它只是切断了中间。

台风:

法拉第:

休息客户端::

在此处输入图像描述

0 投票
1 回答
100 浏览

ruby-on-rails - 可以根据当前大小在 Ruby 中删除 http 请求吗?

我以 Typhoeus 为例,但代码可以是 Ruby 中的任何内容。假设有 10000 个 url,如下所示:

  1. url 可以是任何内容类型——视频、html、图像,任何东西。
  2. 我只需要加载 html 文档并忽略其余的以提高速度和内存效率。

如果我在 5 GB 视频上运行以下代码,它会导致应用程序崩溃,因为它会尝试将整个视频加载到内存中。

如果我首先在每个 url 上发出 HEAD 请求以确定它的内容类型和内容大小,它将有助于解决内存问题,但它将花费几乎两倍的时间(头部请求为 0.7 秒,实际请求为 0.7 秒)

有什么方法可以在 Ruby 中发出 http 请求,观察它当前传输的内容大小并在达到一定限制时丢弃它?例如,如果请求大于 5 MB,则丢弃请求?或者,根据它的内容类型删除它。

0 投票
0 回答
74 浏览

ruby - Typhoeus 总是收到错误 401

我想向一个 url 发出一个 get 请求,所以我使用 Typhoeus gem。

代码示例:

但我总是收到代码 401。为什么?当我将 url 放入浏览器并插入域用户名和密码时。

0 投票
1 回答
386 浏览

ruby-on-rails - 如何从 api 的响应中获得正确的输出?

我正在使用 typhoeus gem 打一个 api,这就是我得到的响应。

代码是这样的:

我如何从中获得有用的东西?

0 投票
2 回答
2407 浏览

ruby - 如何使用 RSpec 模拟一个接受然后调用块回调的 API?

我有这个方法:

它清除 zip_path,重新创建它,打开一个文件进行写入,然后从@feedURL 下载文件并以块的形式写入下载的文件。

我想知道如何对其进行单元测试,模拟实际的请求。由于它通过一些块使用分块,所以有点复杂。

我以前有这个代码:

这很容易测试(通过模拟 Typhoeus 并提供存根返回):

所以我想知道如何对相同种类的东西进行单元测试......即在模拟 Typhoeus 时创建路径、保存文件等。由于它是一个 3rd 方库,我不需要测试它是否有效,只要它被正确调用即可。

这是分块,on_bodyon_complete让我感到困惑(就如何测试而言)

0 投票
2 回答
3684 浏览

ruby - 具有基本身份验证和多个参数的 Ruby Post 请求

我在做一些可能很简单的事情时遇到了可笑的困难......

我正在尝试在 ruby​​ 中运行一个简单的 POST 请求。我查看了路边、台风、休息客户端等...发布请求具有基本身份验证(通过 api 密钥)和两个参数...

我在下面以 curl 形式写出命令,效果很好。

谁能帮我把它翻译成红宝石?我不介意使用台风、路缘石等……只要它有效……

0 投票
1 回答
138 浏览

ruby - 是否可以仅在 Ruby 中使用 typhoeus 而不是 HTML 来下载完整的网页?

我正在使用 ruby​​ 使用 typhoeus 下载完整的网页,但它只下载 HTML,

response.body 只返回 HTML,我可以添加任何格式来下载完整的网页及其通过 javascript 加载的数据吗?或者有没有其他方法可以获取数据?

0 投票
1 回答
158 浏览

open-uri - 为爬虫设置适当的标头以防止缓存 html

大家好,我正在构建一个从某些网站获取新闻的小型网络爬虫。我正在使用 Typhoeus。

我的代码是这样的:

问题是一些网站请求返回页面的旧版本。我尝试设置标题并包含“Cache-Control”=> 'no-cache' 但这没有帮助!任何帮助将不胜感激。

使用 open-uri 时也会发生同样的事情。

该网站的响应标头之一:

0 投票
1 回答
126 浏览

ruby - 多个请求的线程发布到相同的 url

我已经构建了一个这样的 json 块:

我正在尝试将“postdata”中的每个块并行(例如 2 个池)发布到相同的“url”。我曾尝试使用 Faraday、Typhoeus 和 Parallel,但在这样做的过程中我还没有遇到一个正常运行的用例。

理想情况下,我想使用 Typhoeus::Hydra 或 Faraday,将 'data' 对象传递给它,并使用 data['url'] 作为端点汇集 data['postdata'],但我已经空了递。大多数情况下,我遇到了需要一个数据数组的情况,例如:

但我显然想避免这种重复。

最终目标:将潜在的 100 个 json 主体并行发布到同一个 url,一次通过有限的(比如 10 个)汇集。任何人都可以帮助引导我走上正确的道路吗?

免责声明:这是一个内部端点,所以没有恶意。

基于 tadman 的解决方案: