Archive for the ‘Charles’ Category

Charles v3.4b1 featuring SSL improvements

Monday, March 30th, 2009

Charles v3.4 is in the works. I haven’t settled on a final feature list for this yet; my focus is intended to be UI improvements, but I couldn’t resist releasing some new SSL features. So this isn’t really a beta, but I’m calling it 3.4b1.

Charles now supports client-side SSL certificates, so you can authenticate with servers that require them. You must configure Charles to use your P12 file for each site that requires it using the Client SSL Certificates option in the Proxy menu. Charles will ask for your password when it needs it, and it doesn’t remember it beyond the session for your security. Please let me know how this works for you!

You can now list SSL sites that should not be proxied / decrypted by Charles. In the process I also renamed “Decrypt SSL” to “SSL Proxying” as it wasn’t the right terminology. So if you have software that accesses specific sites and doesn’t like Charles’s certificates you can add them here; by default it has PayPal and Kagi in there to ward off the emails I get about those sites having invalid certificates! For myself I’ve added *.getdropbox.com as it doesn’t like the SSL certificates it sees even with Charles’s CA certificate trusted by the system - that’s good security.

Finally, the SSL certificates that Charles generates for sites are now cached. This means when you say “permanently trust this certificate” in your browser, it will actually work!

Download the beta.

Charles v3.3 released

Sunday, February 15th, 2009

I’ve released Charles v3.3 today. This release adds several new and exciting features including:

  • HTML, CSS & RSS/Atom validation
  • XML export formats
  • JSONP support

I’ve blogged previously about these, and other new features, so I’m just going to link through to those! Read the first announcement and the second announcement.

The next release of Charles will focus on improving various UI and usability features. Particularly the ability to focus in on a small set of hosts, so you don’t get cluttered with others. Also I’ll be making improvements to the Sequence view; probably some sorting. I’ve received lots of suggestions along these lines; if you have anything to add please leave a comment with your thoughts!

Download Charles v3.3

Charles v3.3 public beta 2

Monday, February 9th, 2009

The second public beta of Charles has just been released. This update adds:

  • “Window always on top” setting and window remembers maximised state
  • Summary table column sorting improved to sort numeric columns
  • Map Remote can now map http requests to https servers
  • Location matching now supports adding $ after the final / for an exact directory match rather than an implicit wildcard

It also includes fixes and improvements to JSON and JSON P and validation. In particular you can now repeat a request within the validation results and have it repeat the original request and then validate the result - really handy for iterative testing and fixing!

This release is heading for final this week I hope so please send your feedback.

Download Charles v3.3 public beta 2

Charles v3.3 public beta

Monday, December 29th, 2008

Hi all. Happy holidays!

I’ve put the finishing touches on some new features for Charles:

  • Validation of Markup (HTML/XHTML), RSS / Atom & CSS
  • XML import/export format for recorded sessions
  • JSONP support

Download Charles v3.3 b1

Validation is a really exciting addition for web developers. If you’re trying to build valid HTML / XHTML pages (and the accompanying CSS and RSS/Atom feeds) then this will be invaluable for checking your work. First record your pages in Charles, then select them and choose Validate from the context-menu or the toolbar; Charles will validate each page, one at a time, using W3C’s validator web services. You can view a simple summary of the results or detailed warnings & errors for each page. Double-click the error message line numbers to view that line in the source. Note that the validation uses the source recorded by Charles, it doesn’t just pass the URL to the validator, so this correctly validates dynamically generated pages where the same page may emit different markup depending upon input or state. I’m very interested to hear feedback on this feature. Credit to Rowan Simpson and Glen Barnes for the idea to integrate validation into Charles.

Charles can now export and import recorded sessions in an XML format. This is useful if you want to analyse the data collected by Charles in your own software. To this end the Auto Save tool now also supports saving in any export format, rather than just the Charles session format. I’m going to be looking at more ways to integrate Charles into automated monitoring environments in the near future.

Finally, JSONP support was a small but irritating omission in Charles’s JSON support that is now fixed!

This is a public beta so I’m hoping for feedback and bug reports on the new features, especially if I’ve introduced any bugs! There have also been a few bug fixes in this release: fixes to the request editing feature, Map Remote with SSL, and using an external SOCKS proxy.

Please leave feedback in the comments or via the contact form on the Charles website.

Download Charles v3.3 b1

Charles 3.2.2 released

Saturday, September 6th, 2008

A small bug fix release to Charles after a few quiet months. I’ve been a bit distracted with family and iPhone apps!

This release includes various minor bug fixes, which you read about. New features include remembering whether you use Structure or Sequence view, support for large files (>2GB) and binding reverse proxies and port forwardings to specific IP addresses on the local machine.

The next release won’t be far away and will include one major new feature around HTML validation, and numerous UI improvements as requested by you!

Download Charles 3.2.2

Charles 3.2 released

Monday, March 24th, 2008

Happy Easter! Charles 3.2 has been released today. There are lots of new features so I’ll cover a few of the highlights. You can read the full version history for the whole list.

Breakpoints let you interactively change requests or responses as they pass through Charles. This opens up whole new opportunities for debugging and testing your applications.

Throttling has been enhanced to allow individual throttle configurations for hosts, so not everything has to be throttled the same way anymore. Throttling now also has settings for down and up bandwidth, as these often differ in the real world.

OS integration has improved with the new .chls file extension for saved Charles sessions, and you can now open a .chls file and have it open Charles on Windows and Mac OS X. Windows also gets single-instanced support, so you won’t open a second instance of Charles and have it complain about ports in use! On Windows these enhancements have been made possible by the WinRun4J Java launcher.

Lots of improvements have been made in the Tools user-interface, including enable/disable checkboxes for each location listed in a tool for fine-grained control

There are lots of other enhancements and bug fixes, making this an exciting release! It’s been in beta testing for quite some time but there could still be some bugs; if anything isn’t working the way you expect, or if anything has regressed, please contact me immediately!

Finally, I am planning to change the licensing model for Charles in April: licenses will no longer include life-time upgrades, they will be for the current major version (2.x, 3.x) with upgrade pricing for subsequent versions. This will help Charles to keep improving! Existing license holders are of course not affected by this change.

Download

Charles 3.2 public beta

Monday, January 21st, 2008

The next major release of Charles is at a stage where I’d like more people to have a go using it, send feedback and find bugs before I roll it out properly. Charles 3.2 has been in development for the last six months in parallel with the maintenance of 3.1; it includes a number of major new features, redesign of existing features and new built-in help text.

The biggest new feature is Breakpoints, accessible from the reorganised Proxy menu (several things have moved there from the Tools menu). Breakpoints let you intercept and edit a request or response before they are passed on.

All of the tools have received a UI overhaul to make configuring and using them easier. Editing is now done in a pop up dialog rather than inline in the table view, and the location matching has been broken out into its constituent parts and documented in much more detail. You can also now enable each row in a tool separately so you can manage a few different configurations.

Charles saved sessions now have a new suffix .chls and can now be double-clicked to open Charles on Windows and Mac OS X. This makes them much more useful of course. Charles can also now open raw AMF dumps with suffixes .amf, .amf0 and .amf3 for those of you developing with AMF.

In December Adobe released the AMF3 specification. It was great to see that the community’s reverse engineering efforts had hit the nail on the head pretty much everywhere. With the specification they also released the BlazeDS reference implementation (soon to be open source). Charles 3.2 now supports BlazeDS so you can debug your BlazeDS applications! Previously versions of Charles couldn’t parse some of the AMF3 used by BlazeDS.

There are a few other changes and additions hidden in there as well. I have been using Charles 3.2 continuously throughout its development so I’m confident that it works well enough to release as a public beta! Please download and try it out and let me know how you get on, even if that’s just “works fine”.

Download the latest beta from http://xk72.com/charles/beta.php

Thanks!
Karl

Charles 3.1.3 released

Monday, November 12th, 2007

Over the past two months a few small new features and fixes have accumulated, and it’s time they were released (Mostly I’ve been busy implementing some exciting major new features, which I’ll post about shortly!).

The new features include new Chart types on the Chart tab, to help you get an overview of file sizes, durations and file types. Also the Request & Response tabs can now be combined into one Content tab, for all those of you who have requested that! You can activate this feature in the Preferences.

SSL handling now includes better support for reporting errors, such as rejected certificates. So you can now see why applications may not work using SSL through Charles - if they don’t trust the certificates that Charles creates.

Finally there are a few other changes and minor bug fixes that are all listed in the version history on the download page.

Download Charles 3.1.3

Charles 3.1 released

Monday, August 13th, 2007

Charles 3.1 has been released this morning. Thank you to everyone who helped test this release. I will be posting more information about the new features in the next few days, and updating the documentation.

Please take note of the changes that may effect existing users (pretty minor). These are listed on the download page and in the release notes.


Download Now

Charles 3.1 public beta

Tuesday, July 3rd, 2007

It’s time for the next update to Charles. This update includes a number of improvements and additions. I’m releasing it as a public beta so that we can iron out any major problems before the full release. Please read on for details and download instructions if you’d like to help.

Changes include:

The SSL functionality has been refactored so that Map and Map Local now work via SSL.

The Selected Hosts matching algorithm has been improved to support matching the URL’s protocol (http/https) as well as host name and path, and to fix some other pattern matching problems.

ICO and BMP viewing support has been added.

Minimise to system tray is now a preference option on Windows.

Web Interface: A new web-based interface allowing you to start/stop recording and throttling, and to quit Charles. This is the beginnings of being able to script Charles’s behaviour from external applications, such as in automated testing. The interface is designed to also be useable as RESTful services. The functionality is very basic at the moment, so please let me know how you’d like to see it developed if this interests you. The Web Interface is controlled in the Web Interface Settings in the Proxy menu. It is off by default and supports username/password authentication to prevent unauthorised access.

Finally, the layout of forms, such as in the settings dialogs, has been redone with a new layout manager, MigLayout. This fixes long-time annoyances; OK+Cancel button ordering across platform, consistency of form layout, and general improvements to appearance. I hope you enjoy (or at least can see) the difference.

All of this has meant that I’ve finally had to remove support for Java JDK 1.3. Please let me know if this effects you! I am quite confident that Charles will continue to support Java JDK 1.4 and higher for a long time yet, it was just 1.3 that was becomming a barrier to ongoing development.

This public beta is a release candidate so I consider it stable. I’d like to have people testing it for about a week to catch any problems. If you’d like to give it a go, please download from http://xk72.com/charles/beta.php and post comments here or send me feedback using the contact form on the site.