【发布时间】:2013-10-09 11:41:32
【问题描述】:
我见过这样的代码:
Net::HTTP::Post.new(url)
如果我然后使用ri 如下:
$ ri Net::HTTP::Post
我几乎没有得到任何文档,并且:
$ ri Net::HTTP::Post.new
结果
Nothing known about Net::HTTP::Post.new
在阅读Net::HTTP 的文档时,我怀疑代码应该改用Net::HTTP#request_post。我仍然发现使用这个模块的正确方法令人困惑。为什么Net::HTTP::Post.net 似乎有效?即使使用Net::HTTP.request_post,我也得到:
undefined method `request_post' for Net::HTTP:Class.
为了澄清我的问题,我想知道如何:
- 查找 ruby 的最佳文档。
- 根据提供的示例,获取实现目标的最佳方式(即发出 HTTP POST 请求,我将补充说我需要在正文中使用提供身份验证、cookie 和数据)。李>
- 理解当方法用“R”注释时的含义(这是否意味着“只读”?这没有意义,因为我需要设置请求正文,这意味着写入...
作为对比,这是 Python 的等效文档,我理解(我自己是 python 开发人员):http://docs.python.org/2/library/httplib.html
【问题讨论】:
-
请记住,Ruby 做了很多元编程。
Net::HTTP::Post可能是对在运行时或以某种方式动态创建的类的引用。它的ruby-doc page 暗示了很多,我猜它只是HTTPGenericRequest的别名,HTTP 方法预初始化为"POST" -
millimoose:我注意到了。那里是否有任何约定可以让我对如何做到这一点有所了解?考虑到 ri 在这种情况下并不总是提供好的文档,关于使用 Net::HTTP 模块的任何好的文档?
-
你运行的是哪个版本的 Ruby?
-
Vidya:此刻,我使用的是古老的 Ruby 1.8.7,我知道 1.9 和 2.0 之间的区别,但是文档问题似乎适用于所有这些.
-
@Arafangion 我会说先尝试 ruby-doc,然后在旧版本没用时使用最新版本的文档。 (这里似乎就是这种情况。)2.0 似乎为
net/http添加了概念文档。
标签: ruby