utilReplaceInRequest ne remplace pas les chaînes dans le corps de la requête HTTP dans FiddlerCore
utilReplaceInRequest ne semble pas fonctionner pour moi dans FiddlerCore.
Je télécharge un fichier sur un service cloud (Microsoft Azure). Je peux voir que le corps de la requête HTTP associée contient le contenu du fichier. Je dois remplacer certains de ces contenus (par exemple dans le corps de la requête HTTP) avant que le fichier ne soit téléchargé.
J'ai créé un programme Visual Studio C # et intégré à FiddlerCore. J'utilise la méthode utilReplaceInRequest selon la documentation de Fiddler:
outcome = session.utilReplaceInRequest(original_str, replace_str);
Console.WriteLine("result: " + outcome + "\n");
Ce qui se passe, c'est que utilReplaceInRequest «semble» fonctionner dans la mesure où la variable de résultat est définie sur True les multiples fois que j'appelle utilReplaceInRequest. (J'ai besoin de remplacer plusieurs chaînes dans le corps, j'appelle donc utilReplaceInRequest plusieurs fois). Mais lorsque je vérifie le contenu réel du fichier dans le service cloud, ce sont les chaînes d'origine. Rien n'a été remplacé. J'ai même essayé d'appeler session.GetRequestBodyAsString () après avoir appelé utilReplaceInRequest dans FiddlerCore, et j'ai vu que les chaînes ont bien été "modifiées" dans le corps. Mais ce «corps» n'est tout simplement pas envoyé au service cloud.
Mais il est intéressant de noter que lorsque je fais la même chose dans Fiddler lui-même (personnalisez les règles dans la fonction "static function OnBeforeRequest (oSession: Session) {}"), cela fonctionne et le corps HTTP modifié est envoyé au service cloud !
Y a-t-il une option de configuration que je dois définir (peut-être dans mon programme C #) pour que FiddlerCore fonctionne comme Fiddler?
Merci.
Stan
Réponses
Vous pouvez essayer de régler:
session.bBufferResponse = true;
comme décrit dans les démos FiddlerCore ici .