Charles 3.2 released
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.
March 24th, 2008 at 7:40 pm
I just tested the breakpoint functionality, and it look absolutely amazing! It’s like the feature I always wanted but never knew I wanted
Sounds like a good idea to change the pricing! There are so many great “minor” updates for Charles, so it just makes perfect sense to pay for the major versions.
Thanks for always improving Charles.
March 24th, 2008 at 11:49 pm
You might be working on it but the “Check for updates” feature in Charles says I have the latest version.
March 25th, 2008 at 7:40 am
@TLJ Thanks! That’s great to hear. It is very often that way; a new tool suddenly opens up possibilities that you didn’t think of as you knew you couldn’t do it! Thanks for the support on the license changes; it was a long-debated decision following lots of recommendations and I think it’s the right move
@Theo Heh, yes. That’s me being a little cautious. In case there are bugs that weren’t found in the beta release I wait about a week before updating the latest version check!
March 28th, 2008 at 5:49 am
Any chance of getting a right click open server response in web browser feature added. Usually I have to save response then go find file and double click and open in my web browser. This would save me a lot of time, or also, maybe even add another tab that has a web browser to preview the server response.
April 6th, 2008 at 12:53 am
Wow! The new breakpoint system is an amazing new feature.
Thanks a lot for uh.. inventing it
This really makes debugging way more transparent.
Also thanks for upkeeping existing licenses! Much appreciated.
April 6th, 2008 at 6:57 am
Thanks Bernd. I’m really glad that you like the breakpoints! They were requested by several users – there are some other tools that just do breakpoints, and it was a no-brainer to add it as a feature in Charles. There are so many different ways you can work with Charles now; I was really excited by the Repeat and the Edit Request functions, and Breakpoints just completes the circle I think!
I really appreciate everyone who has purchased licenses for Charles. You’ve 100% helped keep development going. It only makes sense to reciprocate that support
not to mention that the licenses were sold as perpetual and it would be roguish to try to turn that around!
April 11th, 2008 at 5:00 pm
Breakpoint is definitely a good feature, but it would be perfect if you could also filter on HTTP request types (i.e. only break during POSTS and not GETS etc.). Any chance of a quick minor update?
April 11th, 2008 at 5:28 pm
@Charlie Absolutely! I have had a request for exactly that this week and it’s added, you can try it out from http://xk72.com/charles/beta.php and I should be releasing it with some other quick fixes this weekend!
April 24th, 2008 at 8:50 am
Great work on this amazing app!
I’m having a slight issue when sending two AMF requests from Flex, where results can’t be parsed in AMF format, showing the following error:
[AMF data is incomplete (846 bytes of 846 bytes). Please check the recording limits in the Recording Settings.]
When watching the AMF Detail tab, error is:
Failed to parse data. (java.io.EOFException).
Any help? Thanks!
April 24th, 2008 at 8:57 am
@Pablo Thanks for your comment. Can you save a session from Charles containing just the AMF request in question and email it to me karl at xk72 etc?
May 3rd, 2008 at 2:35 am
Great software! We just picked up a liceanse for debugging AMF calls.
We ran into something similar as Pablo except our message indicates it didn’t get back all the data: [AMF data is incomplete (1.43 KB of 24.97 KB). Please check the recording limits in the Recording Settings.] Application gets a EOF error after 2 minutes which is when this message is finalized in Charles. The view of the HEX response shows the data being cut off.
We are finding this issue with any AMF call over our production SSL environment with objects larger than 3K or so being returned. Under a certain threshold 2.5K , we get the data back deserialized in Charles just fine and the data into our flex app.
We don’t believe it to be an issue with Charles, but we are interested if anyone has seen SSL data cut off like this and have any ideas why.
May 8th, 2008 at 9:57 am
In case anyone is interested, we are slowely narrowing down our issue. We have created a cold fusion page which essentially loads a successful amf response trapped by Charles and returns it to a request. If it is a “post” request to this CF page, the same end of file error occurs and data is trunctated. If it is “get” request, it works. Again this is against a load balanced, ssl page v.s. just http or https (sans load balancer). We are try to get the data centers network team to trouble shoot this issue.
May 24th, 2008 at 2:36 am
I own a license for Charles. I’ve been using it for 4-5 years now. It is great. However, since you moved the Charles download to charlesproxy.com I cannot get to the download updates. My corporate filtering rules block it because it is listed as an anonymous proxy. Could you mirror it back to xk72.com?
July 7th, 2008 at 1:37 am
Hey,
I’ve stumbled on two problems –
1) In some cases, when switching between Text and AMF view, I get an exception – Failed to parse data. (java.io.EOFException)
2) It seems impossible to add new AMF entries when editing an AMF request. I can tamper with existing values, but I cannot add my own key/value pairs.
-OS
September 16th, 2008 at 9:11 pm
Hi,
I’ve been using Charles for a week or so and it has done a great job helping to debug my WCF service using SSL. Now I’m a bit confused though. Im running two test clients against the service, one in .Net 3.5 and one in Java. Both worked when I was running on the Asp.Net development server but since I’ve moved to a real website (or at least a virtual root on my dev machine), Charles has stopped recording requests and responses for the Java app.
Both apps are configured the same, to talk to the same service endpoints with the same credentials. Are there any known issues with locally hosted sites ? I saw a localhost issue on the Troubleshooting page, but my site is using a non-loopback IP.
Any comments would be welcome, but thanks for a great tool anyway !
September 18th, 2008 at 11:10 am
@Hugh Please send me an email via the contact form on the Charles website if you’re still having this problem. The problem with localhost is that the OS or browser is hardwired to not use a proxy for localhost, so the workaround is to use “localhost.” instead. In your situation it sounds as if the Java app has decided to not use its proxy settings – can you confirm that the proxy settings are still set correctly in the java app?