Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在不发送Ruby的情况下输出原始HTTP请求_Ruby_Http_Httparty - Fatal编程技术网

在不发送Ruby的情况下输出原始HTTP请求

在不发送Ruby的情况下输出原始HTTP请求,ruby,http,httparty,Ruby,Http,Httparty,我正在尝试使用ruby设置对RESTAPI的POST请求。我想做的是输出原始HTTP请求,而不实际发送请求。我已经研究了HTTParty和Net:HTTP,但输出请求的唯一方法似乎是只发送一次请求。因此,基本上我需要一种方便的方法来创建HTTP请求字符串,而无需实际发送它。HTTParty.get和类似的方法是包含大量内部复杂性的帮助函数;您只需查看方法内部即可找到该HTTParty。要找到该方法内部的HTTParty,请执行以下操作: 通过查看perform_请求,我们发现它只是: 您应该查看

我正在尝试使用ruby设置对RESTAPI的POST请求。我想做的是输出原始HTTP请求,而不实际发送请求。我已经研究了HTTParty和Net:HTTP,但输出请求的唯一方法似乎是只发送一次请求。因此,基本上我需要一种方便的方法来创建HTTP请求字符串,而无需实际发送它。

HTTParty.get和类似的方法是包含大量内部复杂性的帮助函数;您只需查看方法内部即可找到该HTTParty。要找到该方法内部的HTTParty,请执行以下操作:

通过查看perform_请求,我们发现它只是:

您应该查看Request类。

查看

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

 request.run

如果您正试图将其用于测试第三方服务。。。您希望模拟此请求(不向第三方服务发送实际请求,而是在本地生成此请求的响应)。。。那么我敦促你检查一下,谢谢你的回答。已经尝试过了,但是在请求类内部,创建请求的方法是私有的(setup\u raw\u Request)。我可以打开课堂,改变一些事情,但这不是我正在寻找的理想的优雅解决方案。
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 = Typhoeus::Request.new(
  "www.example.com",
  method: :post,
  body: "this is a request body",
  params: { field1: "a field" },
  headers: { Accept: "text/html" }
)
 request.run