ruby - 我可以在发送之前将完整的 Ruby Net::HTTP 请求引用为字符串吗?

标签 ruby http ruby-1.9.2 net-http

我在 Ruby 1.9.2p290 中使用 Net::HTTP 来处理一些网络调用。

我现在需要查看发送到服务器的完整请求(作为一个符合 HTTP 1.0/1.1 的长字符串。

换句话说,我希望 Net::HTTP 处理生成符合 HTTP 标准的请求+正文的繁重工作,但我想使用自定义传递机制发送字符串。

Net::HTTPRequest 似乎没有任何有用的方法——我是否需要降低堆栈并劫持某些东西?

有没有人知道一个好的库,也许除了 Net::HTTP 之外,它可以提供帮助?

编辑:我也想以另一种方式做同样的事情(将字符串响应转换为 Net::HTTP::* - 虽然看起来我可以自己实例化 Net::HTTPResponse 吗?

最佳答案

要求:

post = Net::HTTP::Post.new('http://google.com')
post.set_form_data :query => 'ruby http'
sio = StringIO.new
post.exec si, Net::HTTP::HTTPVersion, post.path
puts sio.string

响应:

si = StringIO.new("HTTP/1.1 200 OK\n")
bio = Net::BufferedIO.new(si)
Net::HTTPResponse.read_new(bio)

关于ruby - 我可以在发送之前将完整的 Ruby Net::HTTP 请求引用为字符串吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10680752/

相关文章:

ruby-on-rails - 在 rails 中使用 omniauth-reddit 时出现 invalid_grant 错误

java - URLConnection 生成错误的 IP 校验和

rubygems - 由于规范中的日期格式,gemspec 无效

Ruby,简单的 "threading"示例,用于更新控制台应用程序中的进度

C++ std::string 到 Ruby VALUE

ruby - 如何使用 Ruby 测试字符串是否基本上是引号中的整数

Ruby/Watir 在使用 "goto"后卡住了

node.js - 如何使用node.js和http下载文件?

c# - 使用 HttpWebRequest 进行 POST 时出现 401(是的,我使用了凭据)

ruby - ruby 1.9.2 和 ruby​​ 2.0 之间的主要/次要区别是什么?