【问题标题】:Capture specific request with HTTParty使用 HTTParty 捕获特定请求
【发布时间】:2011-08-02 19:02:45
【问题描述】:

我想在不使用代理的情况下捕获给定操作的完整请求(raw_request -- 通过网络传输的内容)。

我知道 Class 上的 debug_output 方法,这可能是解决方案的一部分。但不清楚如何根据每个请求进行设置。

考虑以下...

@response = HTTParty.post(@job.callback_url, body: @job.to_json)
notification = Notification.new
notification.response_body = @response.body
notification.response_code = @response.code
notification.request_body = ????

谢谢!

乔纳森

【问题讨论】:

    标签: ruby-on-rails httparty


    【解决方案1】:

    @response.request 将包含请求对象。

    【讨论】:

    • 如何获取 raw_request?
    • @Jonathan 我不建议这样做,除了调试你的代码,但要回答你的问题并获得原始请求,你可以使用 ruby​​ 的 instance_variable_get 方法:@response.request.instance_variable_get(:@raw_request)
    【解决方案2】:
          HTTParty.post(url, :body => body, :debug_output => $stdout)
    

    【讨论】:

    • 我一直在到处寻找这个!
    【解决方案3】:

    在include HTTParty 行下添加以下内容:

    debug_output $stdout
    

    这会设置一个用于调试的输出流,并将输出流传递给 Net::HTTP#set_debug_output。

    【讨论】:

    • “我知道类上的 debug_output 方法,这可能是解决方案的一部分。但不清楚如何根据每个请求进行设置。”
    • 我已经添加了这个,但是如何查看输出呢?我没有在我的日志中看到它。
    猜你喜欢
    • 1970-01-01
    • 2011-09-07
    • 1970-01-01
    • 1970-01-01
    • 2015-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-27
    相关资源
    最近更新 更多