Overview

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!

Key Features

Read more about Charles's features.

Setup

Download and install Charles from their official download page: https://www.charlesproxy.com/download/latest-release/

Unlicensed Limitations

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.

Version 4: https://www.charlesproxy.com/download/latest-release/ 

Version 3: https://www.charlesproxy.com/download/previous-release/

OSX

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.

Windows/Linux

Here be dragons.

Usage

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.

For example, 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:

-Djava.net.useSystemProxies=true

To tell the JVM to use a particular host/port for proxying:

-Dhttp.proxyHost=localhost -Dhttp.proxyPort=8888