Network tab
Toolbar, filters, settings, throttle profiles, the request row, the detail sheet and the sandbox.
Three capture paths feed one list: fetch, XMLHttpRequest (which is what catches axios and most HTTP
client libraries), and any <WebView /> you wired up. The list holds the 200 most recent requests;
older ones fall off the end. Request and response bodies are kept in full, never truncated.
Toolbar
| Control | What it does |
|---|---|
| Record / Clear | As on the panel. |
| Sort (↑ / ↓) | Flips the direction of whatever Sort by is set to. Its label says what pressing it would give you. |
| Filter (⌕ list) | Opens the filters panel below. |
| Preserve log (🔖) | On by default. Keeps captured rows when a wired-up WebView page navigates; off means the log clears with the page. |
| Export (⤓) | Opens the OS share sheet with the currently filtered list as JSON, named network-log-<timestamp>.json. |
| Settings (⚙) | Opens the settings panel below. |
Filters panel
| Field | What it does |
|---|---|
| Search box | Matches method, URL, status code and source, not header or body text. Clear it with the ✕ inside the box. |
| Invert chip | Shows everything that does not match the search text. |
| Type chips | All, Fetch/XHR, JS, Img, Media, Other, classified from the response MIME type. |
| Status chips | All plus one per band captured (2xx, 4xx, Failed, Pending). Each one writes the field below. |
| Status expression | 404, 4xx, >= 400, 200-299, failed, pending. Unreadable text turns the field red and filters nothing. |
| Method chips | One per method actually captured (GET, POST, …), and more than one can be on at once. All clears them. |
| Source chips | One per source seen — your app, or WebView::[name] per declared browser view — and again multi-select. |
| More filters ▸ | Reveals the rest, below. |
| Size: at least / at most | Bytes, or with a unit: 500, 20kb, 1.5mb. |
| Duration: at least / at most | Milliseconds, or with a unit: 250, 800ms, 1.5s, 2min. |
| Only requests in flight | Keeps just the ones that have not finished. |
| Only overridden or blocked | Keeps just the ones a rule of yours answered. |
| Hide data URLs | Drops requests whose URL starts with data:. |
| Hide failed requests | Drops requests that errored (network failures, not 4xx/5xx responses). |
Every filter combines with the search. Invert negates all of them together except the two Hide
switches, which stay absolute — inverting those would bring back the exact noise they suppress. A filter
an entry has no figure for excludes it: a socket has no size or status code, and a request in flight has
no duration yet.
Settings panel
| Setting | Default | What it does |
|---|---|---|
| Large request rows | On | Off gives compact rows: no short name, no badges, URL as the primary line. |
| Sort by | Time | Time, Size, Duration, Status, plus the direction the toolbar's arrow also flips. |
| Group by fetch client | Off | Groups rows under a header per source, with a count per group. |
| Show overview | Off | Shows the traffic graph above the list. |
| Stack header values | On below 768dp | In the detail sheet, puts each header's value under its name instead of beside it. |
| Throttling | No throttling | No throttling, Slow 3G, Fast 3G, Fast 4G, Offline, Custom. |
| User agent | Default | Default, iPhone Safari, Android Chrome, Chrome (macOS), Chrome (Windows), Googlebot, Custom. |
Throttle profiles
Applied to your app's own requests and to wired-up WebView pages.
| Preset | Download | Latency |
|---|---|---|
| Slow 3G | 400 kbps | 2000 ms |
| Fast 3G | 1638 kbps | 563 ms |
| Fast 4G | 9000 kbps | 85 ms |
| Offline | none | requests fail immediately |
| Custom | your Download (kbps) | your Latency (ms) (defaults 750 / 500) |
Picking Custom under User agent reveals a free-text field for the whole UA string. Every captured request records the conditions it ran under, so the detail sheet can show them later.
Overview strip
Shown when Show overview is on, and only once at least one request is captured.
- 36 buckets spanning the oldest to the newest captured request; bar height is request count.
- A bucket containing a failed request is drawn in the error colour.
- Tap a bucket to narrow the list to that slice of time; tap it again to clear.
- The row underneath shows the first timestamp, the selected span, and the last timestamp.
A request row
| Element | Meaning |
|---|---|
| Method | Colour-coded per verb. |
| Status | The HTTP code, or the error text, or an amber PENDING while still in flight. |
| Duration · time | Total ms and the wall-clock start. A dash until it finishes. |
| Type icon | Per response kind; JSON gets its own glyph. |
| Name | Last path segment plus the query string (large rows only). |
| URL | Full URL, one line on large rows, two on compact. |
| Badges | Resource type · source (only when it came from a WebView) · response size (large rows only). |
| ⋮ | The copy menu, also on long-press anywhere in the row. |
The copy menu: Copy URL, Copy as cURL, Copy as fetch, Copy as fetch (Node.js), plus Copy request payload and Copy response when those exist.
Detail sheet
Tapping a row opens a sheet with up to five tabs. It always opens on Headers.
Headers
| Section | Fields |
|---|---|
| General | Request URL, Request Method, Status Code, Source (only for WebView traffic). |
| Network Conditions | Throttling, User Agent, and Agent String when an override was active. Amber when throttled, red when offline. |
| Request Headers | Every header sent, with a per-value copy button. Count in the section header. |
| Response Headers | Every header received, same treatment. |
The other four
- Payload — the request body as an explorable JSON tree. The tab is hidden entirely when the request had no body.
- Preview — the response rendered: pretty-printed and syntax-coloured JSON, a real image for image
responses, HTML as HTML. Falls back to
No preview available. - Response — the raw response body, in full, with a copy button.
- Timing — Started At and Duration (
(pending)while in flight), plus a note that a DNS/TCP/TLS/TTFB breakdown is not observable from JS, since those phases happen in the native networking stack.
The sheet's ⋮ menu adds Try in sandbox above the same copy items as the row menu.
Sandbox
Opens the request as something editable, seeded from what was captured: URL, method, query parameters, headers, cookies, auth and body all split into their own fields.
| Area | What is in it |
|---|---|
| URL bar | The base URL, without the query string. |
| Method chips | GET, POST, PUT, PATCH, DELETE. |
| Send | Fires the request and switches to the Response tab. |
| Request tab | Authentication · Query Parameters · Headers · Cookies · Body. |
| Response tab | Status code and text, colour-coded, with the round trip in ms; Response Headers (with count); Response Body. A failed request shows Request failed and the error instead. |
Authentication offers none, bearer (a Token field) and apikey (a header-name field, for
example x-api-key, and a Value field). Query parameters, headers and cookies are key/value tables
that grow a blank row as you fill the last one. Cookies are recombined into one Cookie header on
send.
Sandbox requests go out through the same patched fetch, so they appear in the log like any other
request.