Как настроить автоответчик Fiddler для "привязки" хоста к папке?



Я уже использую Fiddler для перехвата запросов на определенные удаленные файлы во время работы над ними (поэтому я могу настроить их локально, не касаясь опубликованного содержимого).



То есть я использую много правил, подобных этому



match:    regex:(?insx).+/some_file([?a-z0-9-=&]+.)*
respond: c:somepathsome_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:somepathsomefile
http://some_domain/path1/somefile --> c:somepathpath1somefile
http://some_domain/path1/somefile?querystring --> c:somepathpath1somefile?querystring


Я попытался использовать то, что у меня уже было:



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


В основном, я ищу //some_dummy_domain/ в запросах. Это, кажется, соответствует правильно при тестировании, но я не знаю, как реагировать.



Может ли скрипач использовать спички в ответах, и как я могу это правильно настроить ?



Я попытался ответить 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 <-----------
849   2  

2 ответ:

Проблема заключается в том, что вы используете insx в начале выражения; n означает, что вы хотите требовать явно именованные группы захвата, что означает, что группа $1 не создается автоматически. Вы можете либо опустить n, либо явно назвать группу захвата.

Из книги скрипача:

Используйте замены регулярных выражений в тексте действия

Автоответчик Fiddler позволяет использовать замены групп регулярных выражений для отображения текста из условие соответствия в текст действия. Например, правило:

Текст Матча: REGEX:.+/assets/(.*)
Текст Действия: http://example.com/mockup/$1

...сопоставляет запрос для http://example.com/assets/Test1.gif с http://example.com/mockup/Test1.gif.

Следующее правило:

Текст Матча: REGEX:.+example\.com.*

Текст Действия: http://proxy.webdbg.com/p.cgi?url=$0

...перезаписывает входящий URL-адрес таким образом, что все URL-адреса, содержащие example.com, передаются в качестве параметра URL на страницу на proxy.webdbg.com.

Текст Матча: REGEX:(?insx).+/assets/(?'fname'[^?]*).*

Текст Действия C:\src\${fname}

...карты запрос на От http://example.com/‌assets/img/1.png?bunnies до C:\src\‌img\‌1.png.

Comments

  1. Виктор
    Виктор 3 года назад
    <p>Может ктонибудь подскажет по figdder. Нужно, чтобы все ответы бали с заголовком Cache-control:max-age3600. Написал правило</p>

    <p>// Изменить значение заголовка с именем "Cache-Control" на значение " max-age=3600"</p>

    <p>oSession.oResponse.headers["Cache-Control"] = "max-age=3600";</p>

    <pre>
     }</pre>

    <p>Применил в Autorecponder. Подмены не происходит. Может не правильно составлена команда или может её надо ещё перекодировать, чтобы фиддлер понял задачу. Заранее благодарю за ответ.</p>