Skip to main content

How to inspect and replay requests to an HTTPS tunnel

Since app version 1.4.0

Open the "Requests" tab of an HTTPS tunnel: it shows every request that reaches the link and your service's answer to it, and you can send any request to the service again.

The log is kept only in your computer's memory and is cleared when the tunnel closes, when you sign out and when the app restarts.

How to open the inspector​

  1. Open "Tunnels" and pick a tunnel with an HTTPS link.
  2. Go to the "Requests" tab. Until the first request arrives, it says "No requests yet".
  3. Open the tunnel's link in a browser: the request shows up in the log.

Above the log you switch between views: "Log", "Summary", "Pause", "Stubs" and "Collections".

What the log shows​

  • The time, method, path, status code, how long the service took to answer, the sizes of the request and the answer, the visitor's address.
  • The headers in order and both bodies: JSON as a tree, forms as a table, images as images. Bodies compressed with gzip and deflate come unpacked.
  • Where JSON is broken: the line and column where parsing stopped.
  • Who sent a webhook and which event (which senders the inspector knows).
  • Passwords, tokens, keys and cookies stay hidden as [masked] until you click "Show secrets". The inspector doesn't keep the key, password or cookie used to sign in to the link itself: they stay [hidden] even after "Show secrets".
  • A request that the link's sign-in answered, not the service, is marked "login answered", and the "Summary" counts such requests as "Without the service".

The log holds about the last 500 requests of the whole app, and the first megabyte of each body. To keep new requests out of the log, pick "Stop recording" in the "⋯" menu above it: the log says "Recording is off", and the tunnel works as usual. "Resume recording" turns recording back on, and "Clear log" deletes what was recorded at once.

What you can do with a request​

Free on every plan:

  • find requests in the search field by path, headers and body, and in "Filters" keep only errors or the requests of one sender;
  • open the "Summary": requests and errors per minute, the shares of status codes, the slow paths and the median response time;
  • send a request again straight to the service or over the internet, adjust it with "Edit and send", build a "New request", from a browser's HAR file among others, and export a request with "Export…" as curl or HAR;
  • send every failed request again: the "⋯" menu → "Replay failed";
  • on the "Signature" tab, learn before a replay whether your code will accept the webhook's signature.

On Pro and Ultra, also:

  • "Pause": hold a request or an answer by a rule, look at it, then "Let through" or "Drop" it;
  • "Stubs": answer instead of the service with your own response, a delay or a failure;
  • "Collections": save requests and send them in order with "Run the chain";
  • "Compare with…": two requests or two answers, line by line;
  • "Repeat N times" and "Load" with a collection, compared with the previous run;
  • watch WebSocket messages on a request's "Messages" tab;
  • sign a webhook replay again with your own signing key;
  • "Slowdown" in the tunnel's header in the app: speed each way, delay and UDP loss.

In the app, on the free plan, a paid action opens "Plans".

Guides​