Letöltöttem a Fiddlert (http://www.fiddlertool.com/fiddler/). Nagyon szimpatikus, kezes eszköz. Elkap minden HTTP webes forgalmat, amit kifelé generálok, és szépen megjeleníti. Szuper jól tudom debuggoláshoz használni. Ez például az index.hu:
Baloldalon látszik minden kérés. Látni, hogy az index kezdőlap 120 HTTP kérésből áll (tényleg 120, nem csak úgy odaírtam egy nagy számot). Ha valamelyik kérésre rákkatintok, akkor jobboldalonlátom a választ. A fenti képernyőmentésen éppen TextView-ban nézem meg a visszajövő választ.
A vicces benne, hogy töréspontot tudok helyezni a HTTP forgalomba:
Töréspontot HTTP kérés és válasz elé lehet tenni. Legegyszerűbb eset a válasz elé tenni a töréspontot, ekkor a Fiddler "megállítja" a bejövő választ, mi pedig kiválaszthatjuk (baloldalon) és nézegethetjük. Sőt akár át is írhatjuk (jobboldalon):
Ennél is jobb, hogy, ha a kérés elé tesszük a breakpointot, akkor a kimenő kérésbe is beleírhatunk.
Nézzük meg egy egyszerű webalkalmazáson keresztül:
<%@ Page Language="C#" AutoEventWireup="true" %>
<script runat="server">
void btnCopy_Click( object sender, EventArgs e )
{
this.litNev.Text = this.txtNev.Text;
}
</script>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Teszt</title>
</head>
<body>
<form id="form1" runat="server">
<asp:TextBox ID="txtNev" runat="server" MaxLength="5" />
<asp:Button ID="btnCopy" runat="server" Text="OK" OnClick="btnCopy_Click" />
<br />
Szia: <asp:Literal ID="litNev" runat="server" />
</form>
</body>
</html>
Beírjuk a nevünket, megnyomjuk a gombot, és a weboldal üdvözöl minket. A nevünk azonban maximum 5 karakter hosszú lehet, ennyit enged meg ugyanis a TextBox MaxLength propertyje a html kódban. Ha azonban elkapom a gomb megnyomásakor a HTTP kérést és átírom a TextBox tartalmát, akkor azt küldök a szervernek amit nem szégyellek. Most például egy 5 karakternél hosszabb nevet:
Szóval kérés-válasz átírás, sokkal jobb, mint a TcpTrace. Persze csak HTTP-hez. Még az AJAX UpdatePanel kéréseit is elkapja.