2015-10-01 49 views
3

我已经在使用Fiddler截获特定远程文件的请求,而我正在处理它们(所以我可以在本地调整它们而不触及已发布的内容)。如何配置Fiddler的Autoresponder将主机“映射”到文件夹?

即我用很多规则是这样

match: regex:(?insx).+/some_file([?a-z0-9-=&]+\.)* 
respond: c:\somepath\some_file 

这完美的作品。

我想现在做的是采取这一更进一步,像这样的东西

match: regex:http://some_dummy_domain/(anything)?(anything) 
respond: c:\somepath\(anything)?(anything) 

,或者以纯文本格式,

拦截任何HTTP请求到“some_dummy_domain” ,进入'c:\ somepath'并用最初请求的相同路径和名称获取文件。查询字符串应该通过。

某些方案进一步明确:

http://some_domain/somefile  --> c:\somepath\somefile 
http://some_domain/path1/somefile --> c:\somepath\path1\somefile 
http://some_domain/path1/somefile?querystring --> c:\somepath\path1\somefile?querystring 

我想利用我已经有:

match: regex:(?insx).+//some_dummy_domain/([?a-z0-9-=&]+\.)* 
respond: ... 

基本上,我在请求寻找//some_dummy_domain/。这在测试时似乎正确匹配,但我错过了如何回应。

Can Fiddler可以在响应中使用匹配,我怎样才能正确设置它?

我想回应c:\somepath\$1但菲德勒似乎逐字对待它:

match: regex:(?insx).+//some_domain/([?a-z0-9-=&]+\.)* 
respond: c:\somepath\$1 

request: http://some_domain/index.html 
response: c:\somepath\$1html  <----------- 
+0

您是否尝试过像\ 1','$ 1'等regex反向引用语法? –

+0

@LucasTrzesniewski我做了,我忘了提及它。修正了这个问题。 – Alex

回答

6

的问题是你在你表达前面使用的insx; n表示您想要求explicitly-named capture groups,这意味着不会自动创建组$1。您可以忽略n或明确命名捕获组。

从提琴手书:

使用正则表达式替换的操作文本

提琴手的自动回复允许您使用正则表达式替换组从匹配条件的文本映射到操作文本。例如,规则:

与文本匹配:REGEX:.+/assets/(.*)
行动文字:http://example.com/mockup/$1

...地图http://example.com/assets/Test1.gifhttp://example.com/mockup/Test1.gif的请求。

以下规则:

与文本匹配:REGEX:.+example\.com.*

行动文字:http://proxy.webdbg.com/p.cgi?url=$0

...重写URL入境使得包含example.com所有URL作为URL参数的页面通过在proxy.webdbg.com

与文本匹配:REGEX:(?insx).+/assets/(?'fname'[^?]*).*

操作文本C:\src\${fname}

...地图http://example.com/‌assets/img/1.png?bunniesC:\src\‌img\‌1.png的请求。

+0

啊我看到了,我在R-ingTFM失败了。忽略我最后一场比赛中的'n'这个技巧。 – Alex

相关问题