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!
Read more about Charles's features.
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.
Version 4 adds support for HTTP 2
We currently have a license for v3, but are in the process of procuring one for v4.
Version 4: https://www.charlesproxy.com/download/latest-release/
Version 3: https://www.charlesproxy.com/download/previous-release/
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
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.
Some (not all) command-line utilities will allow you to specify a proxy to use for any necessary network connections.
For example, curl
allows you to specify the -x localhost:8888
parameter to tell it to direct its traffic through a proxy.
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:
-Djava.net.useSystemProxies=true |
To tell the JVM to use a particular host/port for proxying:
-Dhttp.proxyHost=localhost -Dhttp.proxyPort=8888 |