2016-03-29 5 views
0

httpsyリクエストをカールリクエストに変換する方法はありますか?失敗したリクエストをカールの形式で別の開発者に送ることができれば嬉しいです。カールするHttpartyリクエスト

私はこのような何かを考えていた:last_request_as_curl私はデバッグAPIの所有者に与えることができますカール文字列に前の要求を向けるだろう

web_caller = HTTPartyClass.new 
web_caller.hit_api 
web_caller.last_request_as_curl 

を。

+0

明示したい要求を行うコードのビットを表示できますか? – Caillou

+0

元の質問はかなり自由でした。私はいくつかの精度で質問を更新し、私の解決策を追加しました。誰かがより良いものを見つけた場合、既存のソリューションがあります。 – unflores

答えて

1

".....カール-X POST" 私は私のHTTParty基本クラスでメソッドを書いた:

理想的には、last_request_as_curlのようなものを返します

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.requestcapture_curlに渡します。