Fiddler当然是摇滚!
所以我需要构建我的请求(一些头文件,一个大的xml有效负载),然后做一个gzip的http POST(头文件表示gzip压缩,我粘贴的xml有效负载得到gzip压缩...就像规格一样说)。
如何?
当我使用"规则" gzip的选项,请求出现(据我所知)不被修改。看起来就像没有gzip一样。
目前正在使用fiddler 2.3.9.2
CURL参考: fiddler中的期望目标可以通过几个步骤完成:
1)gzip payload.xml(使用7-Zip或其他可以创建gzip文件的工具)。调用文件:payload.xml.gz
2)使用此语法
curl --header "Content-Type: application/xml" --header "Content-Encoding: gzip" --data-binary "@payload.xml.gz" https://<yourendpoint> --insecure --trace-ascii -
TIA!
答案 0 :(得分:4)
首先,请升级到当前版本的Fiddler。
其次,重要的是要理解Fiddler的大多数可见压缩功能都与响应的压缩有关,而不是与请求有关。这是因为许多/大多数服务器不支持请求压缩,因为浏览器没有任何方法可以先验地知道它是否会受到支持,因此浏览器不会压缩请求。同样,支持压缩请求会使服务器受到ZIP炸弹攻击。
现在,话虽如此,一些服务器确实支持压缩请求,Fiddler可以生成这些请求。第一个问题是“你如何产生你的请求?”
如果您正在使用Composer,请执行以下操作:点击规则&gt;自定义规则。滚动到OnBeforeRequest。添加以下行:
static function OnBeforeRequest(oSession: Session) {
if (oSession.oRequest.headers.ExistsAndContains("Content-Encoding", "doGZIP"))
{
oSession.oRequest.headers.Remove("Content-Encoding");
oSession.utilGZIPRequest();
}
现在,任何包含Content-Encoding:doGZIP标头的请求都会在传输到服务器之前由Fiddler自动压缩。