Httparty请求卷曲

时间:2016-03-29 09:03:05

标签: ruby curl httparty

有没有办法将httparty请求转换为curl请求?我希望能够以卷曲格式向另一位开发人员发送我失败的请求。

我在想这样的事情:

web_caller = HTTPartyClass.new
web_caller.hit_api
web_caller.last_request_as_curl

last_request_as_curl将上一个请求转换为curl字符串,我可以在调试时将其提供给API的所有者。

理想情况下,last_request_as_curl会返回类似:“curl -X POST .....”

1 个答案:

答案 0 :(得分:1)

我在HTTParty基类中编写了一个方法:

def capture_curl(request)
  options = request.options
  method  = request.http_method.to_s.split(':').last.upcase
  curl_str =  "curl -k -X #{method} "
  if(options[:basic_auth].present?)
    curl_str += "-u #{options[:basic_auth].values.join(':')} "
  end
  curl_str +=
    "-d " +
    options[:body]
      .merge(options[:default_params])
      .map{|a,k| "#{a}=#{k}"}
      .join('&') + " "
  curl_str += "#{options[:base_uri]}#{request.path.path}"
  @curl_str = curl_str
end

def last_curl
  @curl_str
end

我有一个总是处理响应对象的方法,在那个方法中我将response.request传递给capture_curl