问题描述
|
任何人,请帮助我,如何使用xpcom /其他方法在扩展程序中获取Headers和PostData?
我无法在Firebug中找到函数,因为它的代码库很大...谢谢大家
解决方法
我假设您要请求标头,而不是响应标头。然后,您为“ 0”通知注册观察者。常规文档为https://developer.mozilla.org/en/Observer_Notifications#HTTP_requests,可以在https://developer.mozilla.org/zh-CN/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选择的方法。
,弗拉基米尔(Wladimir)挺直的。对于POST数据,以下是一些代码片段,其中包含更多详细信息:
https://developer.mozilla.org/zh_CN/Code_snippets/Miscellaneous#Getting_postData_of_a_webpage