【问题标题】:Get PostData as in FireBug像在 FireBug 中一样获取 PostData
【发布时间】:2011-09-04 08:28:46
【问题描述】:

任何人,帮助我,如何使用 xpcom/其他东西在扩展中获取 Headers 和 PostData? 由于代码库很大,我无法在 firebug 中找到函数...谢谢大家

【问题讨论】:

  • 如果您想在代码库中查找函数,您可以随时尝试 grep(或类似的东西)。
  • 这太 OOP 代码了 :) 很深,所以需要很长时间才能弄清楚什么是什么......

标签: javascript firefox-addon firebug xul


【解决方案1】:

我假设您需要请求标头,而不是响应标头。然后为http-on-modify-request 通知注册一个观察者。一般文档是https://developer.mozilla.org/en/Observer_Notifications#HTTP_requests,代码示例可以在https://developer.mozilla.org/en/Creating_Sandboxed_HTTP_Connections#Handling_cookies 下找到。获取标题很容易,您只需调用nsIHttpChannel.getRequestHeader()

获取响应标头类似,但您需要收听http-on-examine-response 通知,可能还需要收听http-on-examine-cached-response

POST 数据很棘手。您可以通过httpChannel.QueryInterface(Components.interfaces.nsIUploadChannel).uploadStream 获取上传流。但是流只能被读取一次——要么是你,要么是代码向服务器发送数据。因此,您需要用看起来相同但允许您窥视它的东西替换流 - 可能是 nsIInputStreamTee ,您将原始流设置为源,将 nsIPipe 设置为接收器。不确定这是否是 Firebug 选择的方法。

【讨论】:

    【解决方案2】:

    弗拉基米尔头球攻门。对于 POST 数据,这里有一些更详细的代码 sn-ps:

    https://developer.mozilla.org/en/Code_snippets/Miscellaneous#Getting_postData_of_a_webpage

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-12
      • 1970-01-01
      • 2015-02-08
      • 2012-04-06
      • 1970-01-01
      相关资源
      最近更新 更多