This page describes quick usage instructions for Charles.
Charles is a cross-platform web proxy (HTTP Proxy / HTTP Monitor) that runs on your own computer. Your web browser (or any other Internet application) is then configured to access the Internet through Charles, and Charles is then able to record and display for you all of the data that is sent and received.
In Web and Internet development you are unable to see what is being sent and received between your web browser / client and the server. Without this visibility it is difficult and time-consuming to determine exactly where the fault is. Charles makes it easy to see what is happening, so you can quickly diagnose and fix problems.
Charles makes debugging quick, reliable and advanced; saving you time and frustration!
- SSL Proxying – view SSL requests and responses in plain text
- Bandwidth Throttling to simulate slower Internet connections including latency
- AJAX debugging – view XML and JSON requests and responses as a tree or as text
- AMF – view the contents of Flash Remoting / Flex Remoting messages as a tree
- Repeat requests to test back-end changes
- Edit requests to test different inputs
- Breakpoints to intercept and edit requests or responses
- Validate recorded HTML, CSS and RSS/atom responses using the W3C validator
Download and install Charles from their official download page: https://www.charlesproxy.com/download/latest-release/
The free (unlicensed) version comes with a 30-day free trial.
Usage of the software under this trial period is limited to 30 minutes at a time.
Furthermore, a splash ad for Charles will pop up for ~10 seconds on first boot, and every few minutes it will appear for an additional ~5 seconds.
Should I install v3 or v4?
Version 4 adds support for HTTP 2
We currently have a license for v3, but are in the process of procuring one for v4.
Charles automatically integrates with OSX's network proxy settings, if you allow it to do so.
Upon install or first run, Charles should prompt you to enter your admin username/password to allow it to edit your network proxy settings.
Here be dragons.
NOTE: By default, Charles proxies on
localhost port 8888
Monitoring Web Browser Traffic
Most applications will automatically pick up your network proxy settings and use the proxy you've set up.
This means that any requests made from common applications such as Postman or Google Chrome or Outlook (on OSX, at least) should automatically show up in Charles.
Monitoring Command Line Traffic
Some (not all) command-line utilities will allow you to specify a proxy to use for any necessary network connections.
curl allows you to specify the
-x localhost:8888 parameter to tell it to direct its traffic through a proxy.
Monitoring JVM Language Traffic
If you want to examine requests made from a JVM language, you can specify a set of JVM arguments that will direct this traffic through Charles, and allow you to examine.
To tell the JVM to use the system default proxy settings:
To tell the JVM to use a particular host/port for proxying: