Archive for the ‘Charles’ Category

Charles v2.6 released

Monday, November 27th, 2006

Charles v2.6 has been released today. You can download it from the usual place. Thank you to everyone that helped during the beta period, especially Matthew Buchanan who was the inspiration for the visual improvements and finder of the icon set.

The list of changes:

  • Major UI overhaul, including the use of Quaqua and
    JGoodies libraries to improve the native
    look and feel on Mac OS X and Windows respectively.
  • Internal windows removed and replaced by a tab navigation if multiple sessions are open.
  • Sequence view now uses a table when in Wide layout, to show a quick summary of important attributes.
  • XML tree display. View XML documents in a tree format as well as the existing pretty-printed text format.
  • XML pretty-printed text format improved to not load DTDs.
  • JSON and JSON-RPC support.
  • SOAP support.
  • AMF3 parsing improvements.
  • AMF parser now displays during the response download and shows download progress.
  • Fixed nil dereference in Mac OS X proxy configuration in some configurations.
  • Rewrite Tool body rules now support non-type mime types and improved debugging output.

Charles v2.6 final beta

Tuesday, November 21st, 2006

Thanks for your feedback on the previous beta versions. I’ve added a few things to the latest beta, and I’m hoping this is the last (or at least second to last) before release.

Download the latest beta here

The recent additions are:

SOAP support. SOAP messages were always viewable as pretty-printed XML, or now as an XML tree; finally Charles presents a higher level view of SOAP messages in the same RPC format as for AMF (request and response on the same screen). I’d appreciate some feedback from developers who do SOAP development!

JSON-RPC support. Extending the JSON support already in the 2.6 betas with support for JSON-RPC. This provides an enhanced view (request and response on the same screen) for people using JSON-RPC.

Info column in sequence view. The info column gives a brief preview of what is in the request/response. For images it shows the dimensions; for SWFs it shows the dimensions, version and fps; for AMF/Flash Remoting and JSON-RPC it shows the method names. This lets you find the requests you’re looking for faster.

The info column will be expanding in the next release of Charles to support more types. Also I think a similar facility can be added to the structure view when it’s in wide mode.

Please let me know if you discover any problems or if you have any suggestions.

New Look and Feel for Charles

Wednesday, November 15th, 2006

The past few weeks I’ve been working on improving the look, feel and usability of Charles. I’ve made a beta version available for download, please feel free to try it out and send me feedback. http://xk72.com/charles/beta.php

There are new icons for the toolbar and the tree. They come from http://www.icondrawer.com/. I’ve also integrated the excellent Swing GUI fixing libraries; Quaqua for Mac OS X and JGoodies for Windows, which help tidy up a few of the Swing look and feel oddities. This also explains why the download file size has ballooned!

The main interface has also changed; there are no longer internal frames with title bars, instead the current session is part of the main window, with tabs appearing when you have more than one session open. I believe that most users work with a single open session so this reclaims several pixels of screen real estate for you.

The sequence view now defaults to a vertical layout and shows a table, enabling you to see more details about each request/response without clicking on it. You can change this behaviour in the Preferences.

The request and response panels now default to combining headers and body viewers into the one set of tabs, rather than in two separate sets of tabs. This reduces the amount of chrome on the screen and is especially useful when you’re in vertical layout mode and vertical space is at a premium! Again you can change this behaviour in the Preferences.

There’s also JSON support and XML viewing as a tree as well as the existing pretty-printed text view.

There you go. As always I appreciate your feedback, and welcome suggestions.

cheers,
Karl

Charles v2.5 released

Wednesday, September 20th, 2006

One month later and Charles v2.5 is tested and ready for release. There’s a massive list of changes, which should cover almost everything that has changed.

Please download and try out the new version. Please email me if you have any problems!

Charles v2.5 is coming

Monday, August 21st, 2006

It’s been a few months since Charles 2.4.2 was released, and I’m now happy to report that I’m close to releasing version 2.5. This release will include a number of major and minor improvements. Here is a taster:

Improved viewing of cookies, images, multi-part form posts, AMF / Flash Remoting (this is a really neat improvement if you use AMF) and FLV files. Select multiple nodes in the tree to view summary statistics of those requests, or to save them all to disc. Keyboard shortcuts for switching between views. Regex filtering and row limiting on the sequence view. Automatic flushing of old recorded information to stop the session filling up. Host and path matching for recording ignore and tool configuration now with full wildcard support; so you can turn on No Caching on *.swf for example.

That’s only the interesting bits from a big list. I’m currently testing the changes and hope to have it release quality in a week or so.

Charles v2.4.2 released

Thursday, June 1st, 2006

Another small upgrade to Charles released today. This upgrade adds to Charles’s compressed response support, adding support for compressed requests. Compressed requests are sometimes used by SOAP clients and similar.

Also several small improvements have been made to the AMF / Flash Remoting viewer. It now properly handles the slightly broken (I believe) AMFPHP output and the tree display has more nodes open by default.

Download

Charles v2.4.1 released

Saturday, May 6th, 2006

I’ve released an upgrade to Charles today that includes a few useful improvements. The main improvement is to the Firefox autoconfiguration extension. It should now be much more reliable at finding and configuring Firefox. Also the extension now adds a Charles menu to the Tools menu, and shows the current status of the connection to Charles as well as providing a few useful tools. Please let me know if Charles fails to work with your Firefox now!

This release also includes the improvements to AMF 3 parsing as documented in previous posts in this blog.

Look and feel improvements are also in this release. There are several Charles look and feels available in the Preferences, these are now Small, Default, Medium and Large. The font size change is now much greater in these. The display font size now works a bit more consistently as well.

Thanks to those people who helped by reporting and or testing these issues. Please download the latest version.

AMF3 integer parsing

Saturday, May 6th, 2006

Martin Schnabel has done some work on further reverse engineering the integer format in AMF 3, and discovering the undefined type. I have updated my reference AMF 3 implementation accordingly. Including a simpler parse integer algorithm, which I’ve pasted below:


private int readAMF3Integer() throws IOException {
    int n = 0;
    int b = in.readUnsignedByte();
    int result = 0;

    while ((b & 0x80) != 0 && n < 3) {
        result <<= 7;
        result |= (b & 0x7f);
        b = in.readUnsignedByte();
        n++;
    }
    if (n < 3) {
        result <<= 7;
        result |= b;
    } else {
    	/* Use all 8 bits from the 4th byte */
    	result <<= 8;
    	result |= b;

    	/* Check if the integer should be negative */
    	if ((result & 0x10000000) != 0) {
    		/* and extend the sign bit */
    		result |= 0xe0000000;
    	}
    }

    return result;
}

AMF3 reference deserializer in Java

Friday, April 28th, 2006

I’ve released some source code into the Public Domain, from my work in adding AMF3 deserialization support to Charles, as a reference for and compliment to the AMF3 specification.

The source code is a single Java file containing all of the AMF3 specific implementation. You can download it here as a zip file: AMF3Deserializer.zip.

UPDATE 6 May 2006: The reference implementation has been updated to include the newly discovered Undefined type and to correct the integer parsing (including negative integer parsing, credit to Martin Schnabel).

UPDATE 23 December 2006: Another update released here.

Charles on Monkey Bites

Tuesday, April 25th, 2006

Charles was reviewed yesterday on Monkey Bites, a blog on Wired.com. Thanks to Mark at Fluid for spreading the good word!