FiddlerCore version 220.127.116.11/18.104.22.168 has been released and is now available for download here. Also, for the first time ever, a FiddlerCore build targeting the Mono Framework (used on Mac and Linux) is now available here.
The new build includes a number of bugfixes:
- Mixed-case Transfer-Encoding and Content-Encoding tokens now handled properly
- Fixed X-Auto-Auth implementation of Digest authentication on non-GET requests
- Improved SOCKS gateway support
- Enhanced character-set detection
- Myriad other bugfixes
This build also introduces a new feature recently added to Fiddler—an Ignore() method on the Session object. Use the Ignore() method to improve performance of your application by avoiding extra work on traffic that your application is not interested in.
Calling Ignore()on a Session disables buffering of the Session’s response, sets its SessionFlags.Ignored bitflag, and sets the log-drop-request-body and log-drop-response-body flags. With the Ignored flag set, FiddlerCore will no longer fire events as the Session is processed. For instance, none of the BeforeRequest, BeforeResponse, StateChanged, etc, handlers will be fired.
As new features are added to Fiddler and FiddlerCore, the Ignore method will be updated as appropriate.
Saving and Loading SAZ Files
In older versions of FiddlerCore, support for loading and saving traffic captures in Session Archive Zip (.saz) format was provided by way of the Transcoder interfaces – your source could include any of the SAZ-*.cs files; doing so would add an Importer and an Exporter for SAZ-formatted traffic.
This approach was problematic because the sample Transcoders were not keeping up-to-date with the latest features in the SAZ format (for instance, support for loading and saving WebSocket messages). In the new build, FiddlerCore instead exposes three new interfaces: ISAZProvider, ISAZReader and ISAZWriter. This model allows you to swap in any ZIP-compression engine that you’d like. By default, the new SAZ-DOTNETZIP.cs file included with the FiddlerCore package relies upon the DotNetZip library. DotNetZip offers a liberal license, high performance, and support for advanced features like 256-bit AES encryption. It can also run on the Mono Framework on Mac and Linux.
To implement SAZ support in the demo project, download DotNetZip and add Ionic.Zip.Reduced.dll to your project. In Visual Studio’s Solution Explorer, right-click the project and click the Build tab. In the Conditional Compilation symbols box, add SAZ_SUPPORT; . With this symbol defined, you can now call the Utilities.ReadSessionArchive and Utilities.WriteSessionArchive methods, as shown inside the Program.cs file.
I hope you find these improvements useful. As always, please let us know if you encounter any problems or have any suggestions!