问题标签 [net-http]
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.
ruby - 使用 ruby 获取 URL 的内容长度
我正在尝试编写一个 ruby 脚本,该脚本使用net/http
. 我的代码如下所示:
我想从这个请求中获得两条信息:膨胀内容的总长度,以及(视情况而定)压缩内容的长度。
有时,标头会包含一个content-length
参数,该参数似乎是内容的压缩长度。我还可以使用 res.body.length 来估计内容的膨胀大小,但这并不是万无一失的。上的文档net/http
说 gzip 标头会自动从列表中删除(帮助我,谢谢)所以我似乎无法可靠地处理这些信息。
任何帮助表示赞赏(包括其他宝石,如果他们更容易做到这一点)。
ruby - ruby-openid:执行发现时未设置@socket
我对omniauth/openid 有点麻烦。
尝试进行身份验证时,我在日志中发现了这一点:
重要的是undefined method io' for nil:NilClass
来自 openid/fetchers.rb,在以下代码段中:
该错误是由生成的@socket.io.peer_cert
,@socket 未定义。
你们有没有人遇到过这种情况?不太清楚是什么原因。
我正在运行的版本:
- 红宝石 1.9.3dev (2010-08-17 主干 29020) [x86_64-darwin10.4.0]
- 红宝石-openid (2.1.8)
- ruby-openid-apps-discovery (1.2.0)
- 全域认证 0.2.0
ruby - 如何在 ruby 中设置自定义用户代理
我的任务是通过自动化测试 URL 上的不同用户代理。我正在使用ruby进行编码,并且我一直在尝试使用以下方法设置用户代理,但它似乎无法识别用户代理。
有没有其他方法可以做到这一点,或者我做错了什么?
ruby-on-rails - 在哪里可以了解有关 Net::HTTP 方法的更多信息?
有人可以为我指出 Net::HTTP 的好资源吗?我试图理解为什么某些代码会以它的方式运行。例如:
我理解上述代码的 95%,但我找不到任何解释.head('/')
正在做什么的资源。我希望有人能指出我对初学者友好的好资源。
ruby - 通过 open-uri 优雅地使用 Kernel#open for https
需要后open-uri
,可以通过Kernel#open
. 但是,尝试使用 https 执行此操作会导致根证书错误,因为 ruby 没有所有根证书。
这可以像这样解决,但那是为了使用Net::HTTP
带有块的对象。
是否有一种优雅的方式来全局设置use_ssl
和ca_file
用于Net::HTTP
库,以便它将应用于我的整个应用程序以及类似的命令Kernel#open
?
ruby-on-rails - 为什么我在 Rails 中使用“net/http”得到“Errno::ECONNREFUSED”?
我正在尝试从 URL 解析 XML 文件。当我尝试这样的事情时:
一切正常,但只有当我在 Rails 项目之外执行此操作时。如果我尝试将此文件包含在我的 Rails 3 项目中并在那里解析它,我会收到错误消息"Errno::ECONNREFUSED in [controller]" - Connection refused - connect(2)
。
我的问题如下:我不知道如何安装net/http
组件。我在http://www.rubygems.org上寻找它,但我找不到它。
ruby - 在调试一个小小的 ruby 脚本时需要帮助
当我运行我的脚本时,我收到以下错误。
这是脚本:
ruby-on-rails - “慢” API 上的 ActiveResource EOFError
我正在努力解决这个问题,任何帮助将不胜感激!
我有两个 Rails 应用程序,我们称它们为 Client 和 Service,都非常简单,普通的 REST 接口 - 这是基本场景:
- 客户端向服务发出 POST /resources.json 请求
- 服务运行一个创建资源并向客户端返回 ID 的进程
同样,一切都非常简单,只是服务处理非常耗时,可能需要几分钟。如果发生这种情况,客户端会在请求发出 60 秒后引发 EOFError(无论 ActiveResource::Base.timeout 设置为什么),同时服务正确处理请求并以 200/201 响应。这是我们在日志中看到的(按时间顺序):
显然,服务响应从未到达客户端。我将错误追溯到套接字级别,并在脚本中重新创建了该场景,在该脚本中我打开了一个 TCPSocket 并尝试检索数据。由于我没有请求任何东西,我不应该得到任何东西,我的请求应该在 70 秒后超时(参见底部的完整脚本):
这些是一些域的结果:
如您所见,一些服务器允许我们“等待”整整 70 秒,而其他服务器终止了我们的连接,引发了 EOFErrors。当我们对我们的服务进行此测试时,我们(预期)在 60 秒后收到 EOFError。
有谁知道为什么会这样?有什么办法可以防止这些或延长服务器端超时?由于我们的服务继续“工作”,即使在套接字关闭后,我认为它必须在代理级别终止?
每一个提示将不胜感激!
PS:完整脚本:
ruby - 使用 Net::HTTP 的块形式的 HTTPS 请求——这可能吗?
要执行不带块形式的 Net::HTTP https 请求,您可以执行以下操作:
但是有没有办法告诉 Net::HTTP 在做块形式时使用 https?
我在红宝石 1.8.7
ruby-on-rails - 用于 URL 的 Rails 3 EachValidator
我想创建一个 EachValidator,我可以用它来测试给定 URL 的有效性。基本上我想先测试它是否匹配 URL 格式。如果它看起来是 URL,则使用 Net::HTTP 尝试解析 URL(包括以下重定向)。有没有人已经做过类似的事情并且愿意分享他们的代码?