有没有办法将httparty请求转换为curl请求?我希望能够以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……"
我在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
。