I Love Charles….

I do - and if you do any web development then you will too.

not this charles.

Not this charles.

No not that one, this "Charles" is a curiosly named java based HTTP proxy which has become  my personal favourite tool for debugging and testing on the web.  Its particularly brilliant for debugging and testing flash and xmlhttp / ajax work.

Download it from the developers website and you soon will love charles too.  I am thinking of having "I love charles" badges and t-shirts made with the slogan and the applications logo on it.  The only thing holding me back is because the logo for the application is a picture of  a jug, not that I dont love the jug,  I just dont think anyone else will and I dont want to be the only one wearing the said badges.

I even love the jug.

I even love the jug.

So anyway heres my top 8 reasons to love Charles.....

1. You can see what files your web content / page / flash application / ajax application is downloading.

The most obvious use of Charles is just to simply see what assets, data and content your page is downloading. Simply fire up the application and you can see exactly what content is being pulled in. It has two views a tree based ( my favourite) and a sequential view. You can instantly spot 404's & 500's and fix them, no more staring at trace outputs, log files or consoles.

Of course you can do all this with firebug and a few other plug-ins but theres more....

2. You can use it in any browser/ application

It works out of the box with Internet Explorer, Chrome, Safari and Firefox ( if download a plugin from the developers site) .  Most windows applications will use it by default but otherwise you only have to set the proxy configuration up and bingo it works.

I don't work on a Mac much but the designers and developers at MadeByPi also love Charles too so it cant be that hard to use....

3. Its cross platform...

Its java based so it runs on Windows / Mac / Linux

4. You can test without uploading your content

You know the situation, you have a bug which only occurs on your production enviroment. You can use Charles' "map local" feature to inject a local swf / xml / js file into the content of your live site.  Simply enter the URL if the file on the site and the path to the new version on your harddrive and Charles will use your local version.

5. Test your site with limited / slow bandwdith

Charles has a throttling feature which allows you to simulate various bandwidth speeds.

6. You can quickly mirror down content.

Great if you need to grab the content / assets of a site for your local development version - or even just download content when you dont have ftp access and need to pull down content on behalf of your client.

7. Its got a great search function

Need to correct a content or configuration issue in your client code. Just search for that piece of text, image URL, configuration error in the XML / JSON files being pulled in from your site. Charles will quickly show you which files its being pulled from

8. Theres lots more I havent mentioned

Map Local, Map Remote, Rewrite, Parsing of Flash Headers, Image Preview, JSON rendering, XML rendering.

If you love Charles too then please leave a comment!