Mock-Antwort

Chute kann Mock-Daten für übereinstimmende HTTP/HTTPS-Anfragen zurückgeben. Für entschlüsselte HTTP/2-Streams wird die Mock-Antwort lokal beantwortet, ohne die Anfrage weiterzuleiten; bei HTTP/1.1-Anfragen (einfaches Proxying und MitM HTTP/1.1) wird die Anfrage weiterhin an den echten Server gesendet, und die echte Antwort wird durch die Mock-Daten ersetzt, bevor sie den Client erreicht. Dies ist nützlich für Tests, Entwicklung oder das Blockieren unerwünschter Inhalte mit einer benutzerdefinierten Antwort.

Mock-Regeln werden im Abschnitt [Map Local] definiert.

Pro Anfrage wird nur eine Mock-Regel angewendet — die erste Regel, deren URL-Muster übereinstimmt.

Map-Local-Format

Zum Bereitstellen von Mock-Antworten aus lokalen Dateien, eingebettetem Text oder base64-kodierten Inhalten, mit wählbarem Statuscode und Headern:

[Map Local]
^https://example\.com/api.* data="/path/to/mock-response.json"
^https://example\.com/page.* data="/path/to/page.html" header="SGVhZGVyOiBWYWx1ZQ=="
^https://example\.com/pixel.* base64="R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
^https://example\.com/api/v2.* data-type=text data="rate limited" status-code=429 header="Content-Type: text/plain|Retry-After: 30"
^https://example\.com/beacon.* data-type=tiny-gif

Hinweis: Der reguläre Ausdruck wird an beliebiger Stelle der vollständigen Anfrage-URL abgeglichen — https://… nach der Entschlüsselung, http://…, wenn Chute als schlichter HTTP-Proxy arbeitet —, daher deckt ^https://example\.com bereits jeden Pfad und Query-String dieses Hosts ab, ein abschließendes .* ist unnötig. Er wird nie gegen den Pfad allein abgeglichen, daher passt ein Muster wie ^/api nicht. Das Muster behält seine Groß-/Kleinschreibung, sodass \S, \D, \W und \B bedeuten, was dasteht; der Abgleich selbst ignoriert die Groß-/Kleinschreibung.

Ein # oder // am Zeilenanfang oder nach einem Leerzeichen leitet einen Kommentar ein, der bis zum Zeilenende reicht, sofern es nicht in doppelten Anführungszeichen steht; ; tut das nie. Siehe Kommentar.

Map-Local-Parameter

Parameter Beschreibung
data="/path/to/file" Dateipfad, der als Antwort-Body bereitgestellt und zum Anfragezeitpunkt gelesen wird oder, mit data-type, der Body selbst (siehe unten).
`data-type=file\ text\ base64\ tiny-gif` Wie data= gelesen wird: file, ein Pfad (Standard); text, der Wert ist der Body; base64, der Wert wird base64-dekodiert; tiny-gif, ein eingebautes 1×1-GIF ohne data= (gesendet als image/gif, sofern header= keinen Content-Type setzt).
base64="<encoded>" Base64-kodierter Antwort-Body-Inhalt (entspricht data-type=base64).
status-code=<code> Statuscode der Mock-Antwort, 200–599. Standard 200. Ein Code außerhalb dieses Bereichs macht die ganze Zeile ungültig und wird als Konfigurationsfehler gemeldet.
`header="Key: value\ Key2: value2"` Benutzerdefinierte Antwort-Header. Paare werden mit `\ getrennt, und jedes Paar wird am ersten Doppelpunkt geteilt, sodass ein Wert selbst Doppelpunkte enthalten darf (URLs). Die ältere base64-Form (base64-kodierteKey:Value\n`-Zeilen) wird weiterhin akzeptiert.

Eine Regel braucht einen Body: data= (eine Datei, oder Text bzw. base64 mit data-type), base64= oder data-type=tiny-gif; data-type=text ohne data= ergibt einen leeren Body. Eine Regel, die ihren Body nicht erzeugen kann — kein Body-Parameter oder eine nicht lesbare Datei —, antwortet nicht: Die Anfrage geht an den Server, und spätere Mock-Regeln werden nicht versucht.

Hinweis: In beiden Formen wird jeder Header am ersten Doppelpunkt geteilt, und Name und Wert werden von umgebenden Leerzeichen befreit; eine Zeile ohne Doppelpunkt wird ignoriert.

Antworten, die Chute selbst erzeugt — Map Local, die response eines Skripts sowie die Antworten und die Fehlerseite der URL-Umschreibung und der REJECT-Richtlinien — folgen HTTP: Die Antwort auf eine HEAD-Anfrage besteht nur aus dem Header, mit der Content-Length, die eine GET-Anfrage bekäme, und eine Antwort mit Status 204, 205 oder 304 trägt weder einen Body noch eine Content-Length.

Vorlagenvariablen

Bei Verwendung von data= oder base64= unterstützt der Antwort-Body die Ersetzung von Vorlagenvariablen:

Variable Ersetzt durch
{{url}} Die vollständige Anfrage-URL, wie die Regel sie gesehen hat
{{host}} Hostname der Anfrage
{{path}} Relativer URL-Pfad
{{method}} HTTP-Methode
{{ua}} Wert des User-Agent-Headers

Beispiel einer Mock-Antwortdatei (response.json):

{
    "requested_url": "{{ "{{url}}" }}",
    "host": "{{ "{{host}}" }}",
    "method": "{{ "{{method}}" }}"
}

Hinweis: Für HTTPS-Anfragen muss die MitM-Entschlüsselung für den übereinstimmenden Hostnamen aktiviert sein. Mock-Regeln für HTTPS-Verkehr ohne MitM werden ignoriert. Eine unverschlüsselte HTTP-Anfrage wird nur beantwortet, wenn sie Chute über seinen HTTP-Proxy erreicht; unverschlüsseltes HTTP, das über die TUN-Schnittstelle ankommt, wird unverändert weitergeleitet. Chute Android leitet sämtlichen Verkehr über TUN, sofern nicht System-HTTP-Proxy in den Einstellungen eingeschaltet ist, womit Apps den HTTP-Proxy von Chute erhalten (Android 10 und neuer; standardmäßig aus).

Hinweis: Die Datei hinter data= wird vom Gerät gelesen, auf dem Chute läuft, zum Zeitpunkt der Anfrage. Wenn Sie eine Mock-Regel aus Chute Dashboard auf einem iPhone anlegen, ist ein Pfad auf Ihrem Mac für das Telefon bedeutungslos — legen Sie den Inhalt stattdessen mit base64= inline ab, oder stellen Sie die Datei unter einer URL bereit und verwenden Sie URL-Umschreibung.

S. Smart Rabbit LLC © All Rights Reserved            updated 2026-09-29 21:57:05

Diese Seite ist eine Übersetzung der englischen Version. Bei Abweichungen ist die englische Version maßgeblich.

results matching ""

    No results matching ""