Изменить ответ, используя ядро Fiddler
Я пытаюсь перехватить ответ и изменить тело ответа конкретного URL-адреса. Я могу обновить строку в содержании HTML, но когда я проверяю в браузере, я не могу найти изменения, которые я сделал.
я использую это для изменения ответа
private void FiddlerApplication_BeforeResponse(Session oSession)
{
//if (!oSession.fullUrl.ToLower().Contains(txtCaptureUrl.Text.Trim().ToLower()))
// return;
if (oSession.fullUrl.ToLower().Contains("localhost"))
return;
//Search and replace in HTML.
if (oSession.fullUrl.ToLower().Contains("prohance"))
{
if (oSession.HostnameIs("10.10.10.199") && oSession.oResponse.headers.ExistsAndContains("Content-Type", "text/html"))
{
oSession.bBufferResponse = true;
// Remove any compression or chunking
oSession.utilDecodeResponse();
var oBody = System.Text.Encoding.UTF8.GetString(oSession.responseBodyBytes);
//oBody = ReplaceFirst(oBody, "</script>", "<script type='text/javascript'>alert(123)</script>");
oBody = ReplaceFirst(oBody, "ATTENDANCE", "RAVIKANTH");
oSession.utilSetResponseBody(oBody);
oSession.utilDecodeResponse();
var oBody1 = System.Text.Encoding.UTF8.GetString(oSession.responseBodyBytes);
}
return;
}
}
public string ReplaceFirst(string text, string search, string replace)
{
int pos = text.IndexOf(search);
if (pos < 0)
{
return text;
}
return text.Substring(0, pos) + replace + text.Substring(pos + search.Length);
}
когда я отлаживаю, я вижу, что ответ был изменен, но когда я проверяю в обзоре, я не могу увидеть желаемый результат, в чем может быть проблема
1 ответ
Наконец я решил это..
я просто пропустил настройку oSession.bBufferResponse = true;
на событие beforeRequest..
FiddlerApplication.BeforeRequest += FiddlerApplication_BeforeRequest;
private void FiddlerApplication_BeforeRequest(Session oSession)
{
oSession.bBufferResponse = true;
}