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