Указать ответ для ядра скрипача
Я использую ядро Fiddler, чтобы перехватить запрос и предоставить ответ на него. Я знаю, что можно использовать saz-файлы для сохранения ответа. Но проблема в том, что мне нужно иметь возможность настроить ответ. Хотя это файл саз, я не могу настроить ответ вручную.
Есть ли способ сохранить ответ, полученный fiddler, в текстовый файл в формате json, чтобы я мог отредактировать его и использовать в качестве ответа на любой запрос с использованием ядра fiddler? Пока я вижу, что могу сохранить ответ в виде простого текста. Но как мне загрузить этот запрос в Fiddler или проанализировать его с помощью ядра Fiddler, чтобы заполнить все свойства ответа? Можно ли использовать какой-нибудь формат, который позволит мне вручную редактировать ответ?
ОБНОВЛЕНИЕ Я вижу, что я могу просто открыть архив saz, внести свои изменения, чтобы ответить, и использовать его, чтобы указать ответ. Это именно то, что я искал. Также есть способ сохранить сеанс ответа в виде файла har. Можно ли сохранить один единственный ответ как файл har / saz? В настоящее время я могу сохранить только сеанс, и он содержит все запросы и ответы. Есть ли способ ограничить сохраненные данные 1 запросом и 1 ответом?
1 ответ
У вас есть файл SAZ, который содержит полное содержание ответа. Ваш код может загрузить файл SAZ в FiddlerCore, используя Utilities.ReadSessionArchive
метод. Затем у вас будет массив Session
объекты.
Когда FiddlerCore получает запросы, вы можете оценить, хотите ли вы отвечать на каждый запрос, используя ранее загруженный ответ, или хотите вместо этого позволить потоку запроса пройти к серверу. Чтобы запрос прошел через сервер, ничего не делайте.
Чтобы вернуть ранее сгенерированный ответ, в FiddlerCore 2.4.6.4+ (еще не выпущенном) просто вызовите utilAssignResponse
на новой сессии. Для более ранних версий FiddlerCore без этого нового метода OnBeforeRequest
Метод должен вызывать метод, который выглядит примерно так:
public void utilAssignResponse(Session oS, HTTPResponseHeaders oRH, byte[] arrBody)
oS.utilCreateResponseAndBypassServer();
oS.oResponse.headers = (HTTPResponseHeaders)oRH.Clone();
oS.responseBodyBytes = arrBody ?? Utilities.emptyByteArray;
oS.oFlags["x-Fiddler-Generated"] = "Generated by myCode";
}