utilReplaceInRequest não substitui strings no corpo da solicitação HTTP no FiddlerCore

Dec 01 2020

utilReplaceInRequest não parece estar funcionando para mim no FiddlerCore.

Estou carregando um arquivo para um serviço de nuvem (Microsoft Azure). Posso ver que o corpo da solicitação HTTP associada contém o conteúdo do arquivo. Preciso substituir alguns desses conteúdos (por exemplo, no corpo da solicitação HTTP) antes de o arquivo ser carregado.

Criei um programa Visual Studio C # e o integrei ao FiddlerCore. Estou usando o método utilReplaceInRequest de acordo com a documentação do Fiddler:

                 outcome = session.utilReplaceInRequest(original_str, replace_str);
                Console.WriteLine("result: " + outcome + "\n");

O que está acontecendo é que utilReplaceInRequest "parece" funcionar porque a variável de resultado é definida como True nas várias vezes em que chamo utilReplaceInRequest. (Preciso substituir várias strings no corpo, então chamo utilReplaceInRequest várias vezes). Mas quando eu verifico o conteúdo real do arquivo no serviço de nuvem, eles são as strings originais. Nada foi substituído. Eu até tentei invocar session.GetRequestBodyAsString () depois de chamar utilReplaceInRequest no FiddlerCore, e vi que as strings foram realmente "alteradas" no corpo. Mas esse "corpo" simplesmente não está sendo enviado para o serviço de nuvem.

Mas, curiosamente, quando faço a mesma coisa no próprio Fiddler (personalizar as regras na função "função estática OnBeforeRequest (oSession: Session) {}"), funciona e o corpo HTTP modificado está sendo enviado ao serviço de nuvem !

Há alguma opção de configuração que preciso definir (talvez em meu programa C #) para fazer o FiddlerCore funcionar como o Fiddler?

Obrigada.

Stan

Respostas

BorislavIvanov Dec 14 2020 at 03:32

Você pode tentar definir:

session.bBufferResponse = true;

conforme descrito nas demonstrações do FiddlerCore aqui .