Guide

Poser un point d'arrêt sur une requête mobile

Mettez en pause une requête ou une réponse d'un vrai téléphone en plein vol, modifiez le HTTP brut dans le dashboard et laissez-la repartir — ou annulez-la. Ça fonctionne sur iOS en mode VPN et PAC, sur Android via le proxy, et dans un Chrome capturé.

Observer le trafic vous dit ce que l'app a envoyé. Un point d'arrêt vous laisse le modifier avant qu'il n'arrive. Quand une requête ou une réponse correspond à un motif que vous avez défini, elle est retenue — sur le téléphone lui-même en mode VPN iOS, dans le tunnel, ou sur le serveur proxy pour iOS en mode PAC, Android et les navigateurs — et apparaît dans le dashboard comme une pause en direct avec un éditeur du HTTP brut. Vous modifiez, puis décidez : continuer avec ou sans vos changements, ou annuler.

Le dashboard est le cockpit dans tous les cas ; le téléphone n'a jamais besoin d'être touché. Les motifs sont de simples jokers hôte-plus-chemin, un fourre-tout en un clic met tout en pause, et une pause oubliée expire d'elle-même, si bien qu'un point d'arrêt que vous avez laissé derrière vous ne peut jamais bloquer définitivement le trafic du téléphone.

Avant de commencer

Ce qu'il vous faut

Un téléphone qui capture déjà, et l'hôte à mettre en pause déchiffré dessus.

  • Un téléphone appairé avec la capture activée — iOS dans l'un ou l'autre mode, ou Android via le proxy.

  • L'hôte dans la liste SSL proxy de cet appareil. Un motif avec un chemin a besoin d'un hôte déchiffré ; un hôte chiffré ne peut être reconnu que par son nom.

  • Le dashboard ouvert, et environ soixante secondes d'attention par pause — c'est le délai d'expiration.

  • Facultatif : une variable d'environnement contenant un jeton frais, pour rejouer un appel sans coller le secret.

Pas à pas

Faites-le dans l'ordre

Sept étapes : déchiffrer, définir le motif, déclencher, modifier, décider, puis le côté réponse et le rejeu.

  1. 01

    Déchiffrez l'hôte d'abord

    Trouvez une vraie requête vers l'endpoint dans le flux et confirmez que son corps est lisible. Sinon, ajoutez l'hôte à la liste SSL proxy de l'appareil et déclenchez l'appel à nouveau — sur iOS en mode VPN, désactivez puis réactivez le tunnel pour qu'il prenne la nouvelle liste. Les points d'arrêt correspondent sur l'hôte et le chemin, et le chemin n'existe que pour un hôte déchiffré.

  2. 02

    Ajoutez un motif de requête et enregistrez-le

    Ouvrez la page Breakpoints depuis la navigation des réglages. Ajoutez un motif de requête pour mettre en pause une requête sortante avant qu'elle n'atteigne le serveur, ou un motif de réponse pour mettre en pause la réponse avant que l'app ne la voie — la même syntaxe de jokers hôte-plus-chemin que les règles de blocage. Cliquez sur Save patterns pour les pousser vers le chemin de capture. Les motifs par appareil vivent sous l'appareil, puis Breakpoints ; le jeu global est le repli pour chaque appareil.

    Pressé ? Pause all requests est un fourre-tout en un clic qui met en pause chaque requête sortante sans aucun motif. Resume all l'annule.

    Deux motifs — un côté requête, un côté réponse
    text
    # Request patterns (pause before the request leaves the phone)
    api.example.com/v1/checkout/*
    
    # Response patterns (pause the reply before the app sees it)
    *.example.com/v1/session
  3. 03

    Déclenchez l'appel depuis le téléphone

    Utilisez l'app. Quand une requête correspond, elle s'arrête — dans l'extension tunnel iOS en mode VPN, sur le serveur proxy sinon — et apparaît sous Live pauses dans le dashboard, avec une pastille d'état confirmant que le lien en direct est sain. Pour l'app, elle attend simplement un réseau lent.

  4. 04

    Modifiez le HTTP brut

    Choisissez la pause et modifiez la requête dans la zone de texte : méthode, chemin, en-têtes et corps. La longueur du contenu est recalculée automatiquement, vous n'avez donc jamais à compter les octets. L'en-tête Host est modifiable mais ne redirige pas la requête — il change ce que le serveur voit, pas où la requête va.

    À quoi ressemble une requête en pause dans l'éditeur
    http
    POST /v1/checkout/confirm HTTP/1.1
    Host: api.example.com
    Content-Type: application/json
    Authorization: Bearer <redacted>
    
    {"amount": 4900, "currency": "eur", "coupon": null}
  5. 05

    Continuer, annuler ou réinitialiser — en moins de soixante secondes

    Continue laisse la requête poursuivre, avec ou sans vos modifications. Abort l'abandonne, l'app voit donc un échec. Reset jette vos modifications et restaure l'original capturé. Votre décision voyage jusqu'à l'appareil propriétaire de la pause via le canal de contrôle en direct ; si personne ne décide en soixante secondes, la pause expire d'elle-même et la requête d'origine passe, si bien qu'un point d'arrêt laissé sans surveillance ne bloque jamais le téléphone pour de bon.

  6. 06

    Mettez aussi en pause le côté réponse

    Un motif de réponse retient la réponse du serveur avant que l'app ne la reçoive. C'est ainsi que vous testez ce que l'app fait d'un champ que le serveur n'envoie jamais, d'un statut qu'il ne renvoie jamais, ou d'un corps légèrement faux — sans règle de mock et sans toucher au serveur. Modifiez, continuez, et regardez l'app réagir.

  7. 07

    Rejouez avec Resend, et itérez

    Depuis la barre d'actions de toute requête capturée, Resend la réémet telle quelle depuis l'appareil ou le proxy et marque la nouvelle capture comme renvoyée. Edit and Resend ouvre une fenêtre pour ajuster d'abord la méthode, l'URL, les en-têtes ou le corps. Les espaces réservés entre doubles accolades dans l'URL, les en-têtes ou le corps sont résolus avec les variables d'environnement de l'appareil juste avant le départ de la requête — vous pouvez donc rejouer un appel avec un jeton frais sans coller le secret. Utilisez le filtre Resent du flux pour isoler les rejeux des originaux, et combinez les deux : mettez une requête en pause, copiez-la, puis Edit and Resend des variantes jusqu'à obtenir la réponse recherchée.

Dépannage

Ce qui peut mal tourner

Si rien ne se met en pause, le motif correspond à quelque chose qu'il ne peut pas voir, ou n'a jamais été enregistré.

  • La requête passe sans s'arrêter

    Vérifiez que l'hôte est déchiffré sur cet appareil, que vous avez cliqué sur Save patterns, et que le joker correspond exactement à l'hôte et au chemin affichés par la ligne du flux. Un jeu par appareil l'emporte sur le repli global, vérifiez donc aussi lequel le téléphone utilise.

  • La pause a disparu avant la fin de ma modification

    Elle a expiré à soixante secondes et l'original a continué. Préparez votre modification — collez-la depuis une capture précédente — et déclenchez l'appel à nouveau.

  • Changer l'en-tête Host n'a pas envoyé la requête ailleurs

    C'est voulu : l'en-tête est modifiable mais ne redirige jamais. Pour atteindre un autre serveur, utilisez Edit and Resend avec une autre URL, ou faites sortir l'appareil par un proxy externe.

  • Pause all requests a figé plus que prévu

    C'est un fourre-tout pour chaque requête sortante dans la portée où vous l'avez activé. Cliquez sur Resume all, puis ajoutez un motif de requête étroit pour le seul hôte qui vous intéresse.

  • La pastille d'état indique que le lien en direct est coupé

    Votre Continue ou Abort ne peut pas atteindre l'appareil tant que le canal de contrôle ne s'est pas reconnecté. Attendez que la pastille se rétablisse ; une pause qui expire entre-temps continue comme l'original.

FAQ

Les questions qu'on nous pose

Les points d'arrêt fonctionnent-ils sur iOS sans proxy Wi-Fi ?

Oui. En mode VPN, le tunnel sur l'appareil exécute le même cycle pause-modification-reprise dans l'extension réseau, en Wi-Fi ou en cellulaire. Le mode PAC l'exécute sur le serveur proxy. Le dashboard est identique dans les deux cas.

Puis-je mettre en pause une réponse plutôt qu'une requête ?

Oui — les motifs de réponse retiennent la réponse du serveur avant que l'app ne la voie, vous pouvez donc modifier le statut, les en-têtes ou le corps et observer comment l'app s'en sort.

Et si je veux que le changement se produise automatiquement à chaque fois ?

C'est une règle de blocage ou un script, pas un point d'arrêt : une règle répond seule à chaque correspondance, un script réécrit les octets par requête. Les points d'arrêt servent aux cas où vous voulez décider à chaque fois.

Arrêtez la requête, changez d'avis

Un motif, une pause, une modification — et le téléphone dans votre main reçoit exactement la requête ou la réponse que vous vouliez tester.

Ask your mate