输出原始HTTP请求而不在Ruby中发送

时间:2014-03-08 23:05:45

标签: ruby http httparty

我正在尝试使用ruby为休息api设置POST请求。我想要做的是输出原始HTTP请求而不实际发送请求。我查看了HTTParty和Net:HTTP,但似乎输出请求的唯一方法是只发送一次请求。所以基本上我想要一种方便的方法来创建一个HTTP请求字符串而不必实际发送它。

2 个答案:

答案 0 :(得分:0)

HTTParty.get和类似的方法方法是包含很多内部复杂性的辅助函数;你应该偷看方法内部,找到HTTParty.get来找到它内部的makes a call to perform_request

def get(path, options={}, &block)
  perform_request Net::HTTP::Get, path, options, &block
end

并且窥视perform_request,我们得到的只是constructs a Request object and call perform on it

def perform_request(http_method, path, options, &block) #:nodoc:
  options = default_options.merge(options)
  process_headers(options)
  process_cookies(options)
  Request.new(http_method, path, options).perform(&block)
end

您应该查看Request类。

答案 1 :(得分:0)

查看Typhoeus

request = Typhoeus::Request.new(
  "www.example.com",
  method: :post,
  body: "this is a request body",
  params: { field1: "a field" },
  headers: { Accept: "text/html" }
)

它允许您创建请求,然后您可以使用

运行它
 request.run