開発環境 |
Microsoft Visual Studio Express 2013 for Windows Desktop |
実行環境 |
Microsoft Windows 8.1 (64bit) |
プロジェクトの種類 |
Visual C#/コンソール アプリケーション |
プロジェクト名 |
FiddlerMH1 |
Program.cs
/*
* プロジェクト/参照
* ・FiddlerCore4.dll
*/
using Fiddler;
using System;
using System.IO;
using System.Threading;
namespace FiddlerMH1
{
class Program
{
static string logdir;
static void Main(string[] args)
{
logdir = DateTime.Now.ToString("yyyyMMdd_HHmmss");
Directory.CreateDirectory(logdir);
FiddlerApplication.AfterSessionComplete += FiddlerApplication_AfterSessionComplete;
Console.CancelKeyPress += Console_CancelKeyPress;
Disp("Starting {0}...", FiddlerApplication.GetVersionString());
FiddlerApplication.Startup(0, true, true);
Disp("Hit CTRL+C to end session.");
bool bDone = false;
do
{
ConsoleKeyInfo cki = Console.ReadKey();
Console.WriteLine();
switch (cki.KeyChar)
{
case 'q':
bDone = true;
break;
}
} while (!bDone);
DoQuit();
}
static void Console_CancelKeyPress(object sender, ConsoleCancelEventArgs e)
{
DoQuit();
}
private static void DoQuit()
{
DispColor(ConsoleColor.Yellow, "Shutting down...");
FiddlerApplication.Shutdown();
Thread.Sleep(500);
}
private static void Disp(string format, params object[] arg)
{
DispColor(ConsoleColor.Gray, format, arg);
}
private static void DispColor(ConsoleColor color, string format, params object[] arg)
{
Console.ForegroundColor = color;
Console.WriteLine(format, arg);
Console.ResetColor();
}
static void FiddlerApplication_AfterSessionComplete(Session oSession)
{
Console.WriteLine("{0}:[{1}] [{2}]", oSession.id, oSession.oResponse.MIMEType, oSession.fullUrl);
string[] url = oSession.fullUrl.Split('/');
if (5 <= url.Length && url[4] == "makeRequest")
{
if (oSession.oResponse.MIMEType == "application/json")
{
string req = oSession.GetRequestBodyAsString();
string res = oSession.GetResponseBodyAsString();
string path = string.Format(@"{0}\{1:d8}.log", logdir, oSession.id);
using (StreamWriter sw = new StreamWriter(path, false)) // 上書き
{
sw.WriteLine(oSession.id + "\t" + oSession.fullUrl + "\t" + req + "\t" + res);
}
}
}
}
}
}
最終更新:2015年04月09日 09:11