Desenvolvimento

13 mar, 2017

Interceptando requests do seu app Android ou iOS com o Fiddler

Publicidade

Recentemente, trabalhei em um projeto em que eu precisava ver todos os requests que meu aplicativo (Xamarin Android e Xamarin iOS) estava fazendo para poder entender e debugar o que estava acontecendo. Mas como você faz isso, já que o aplicativo está instalado em um aparelho externo, e o código não é executado na sua máquina? Você já deve ter passado por esse cenário de precisar inspecionar a frequência de requests, a resposta do servidor, os parâmetros enviados/recebidos etc.

Neste cenário, podemos usar o Fiddler para ter acesso aos requests que estão sendo enviados/recebidos pelo aplicativo. O Fiddler é uma ferramenta gratuita cheia de recursos que permite inspecionar qualquer requisição web, em qualquer plataforma. Era exatamente o que eu precisava: eu posso configurar o Fiddler para agir como um proxy, para que todas as requisições feitas no meu aparelho passem por ele e eu tenha a chance de inspecioná-las. Vamos ver como fazer isso.

Configurando o Fiddler

O primeiro passo é configurar o Fiddler para aceitar conexões remotas, já que nosso aparelho se conectará nele. Depois de instalado, vá em Tools > Telerik Fiddler Options…, na aba Connections, marque o checkbox “Allow remote computers to connect“:

Preste atenção na porta que está configurada, pois precisaremos dessa informação em breve. Por padrão, ele sempre usa a porta 8888.

Salve as configurações e reinicie o Fiddler.

Configurando o dispositivo Android

O segundo passo é fazermos com que o Android sempre passe os requests pelo proxy do Fiddler, para que a gente consiga enxergar o que está sendo trafegado. Tenha em mente que isso pode variar um pouco entre fabricantes de Android diferentes.

Vá nas Configurações do seu aparelho e selecione as opções de Wi-Fi.

Aperte e segure a rede em que o aparelho está conectado e selecione “Modificar rede“.

Atenção: seu aparelho deve ser capaz de acessar sua máquina. Na maioria das vezes, isso significa que sua máquina e seu aparelho devem estar conectados na mesma rede para que eles possam se enxergar.

Expanda as opções avançadas e configure um proxy manual da seguinte forma:

Proxy hostname: IP DA SUA MÁQUINA
Proxy port: PORTA CONFIGURADA NO FIDDLER (por padrão 8888)
IP Settings: DHCP

Configurando o dispositivo iOS

Caso o aplicativo seja iOS, também podemos configurar o aparelho para utilizar o proxy do Fiddler. Acesse as opções: Configurações > Geral > Rede > Wi-Fi.

Selecione a rede utilizada para ver as configurações. Role a tela até o final para configurar o proxy em modo Manual com o IP e a porta do Fiddler, mantendo a opções de autenticação desabilitada, conforme a imagem abaixo:

A partir de agora todos requests passarão pelo Fiddler.

Configurando o simulador iOS

Caso esteja utilizando um Mac e o simulador iOS, também é possível configurá-lo para inspecionar os requests. Como se trata de um simulador, ele utilizará a rede do próprio Mac para comunicação, então, precisamos configurar o proxy diretamente no nosso macOS.

Nas preferência do sistema, nas opções de Rede, selecione a rede utilizada e clique no canto inferior direito nas opções Avançadas.

Selecione a aba de Proxies e marque os checkboxes de Web Proxy (HTTP) e Secure Web Proxy (HTTPS). Configure o proxy do Fiddler em ambas opções, colocando apenas o IP e a porta, conforme a imagem abaixo:

Os requests do simulador agora passarão pelo proxy configurado.

Inspecionado os requests

Agora que tudo está configurado, podemos abrir o Fiddler e começar a investigar os requests. Por padrão, o Fiddler já vem configurado para começar a inspecionar no momento em que é aberto.

Abra o Fiddler e certifique-se que ele está habilitado para capturar, no canto inferior esquerdo você deverá ver um indicador “Capturing“. Todo request feito pelo seu aparelho deverá agora aparecer na caixa do meio:

Quando você seleciona um request, você consegue ter acesso a todas as informações dele: header, corpo, status code, cookies etc.

Agora, podemos saber exatamente quais requests nosso app está fazendo e podemos utilizar essas informações no diagnóstico de problemas.

Por último, lembre-se sempre de desligar o Proxy do seu dispositivo após os testes para não ficar vulnerável à pessoas que estejam espionando a rede.

Conclusão

Todo esse processo funciona tanto em aparelhos externos, quanto emuladores; então, você pode inspecionar aplicativos nos dois modos. Com isso, podemos entender exatamente o que está acontecendo com o aplicativo. O Fiddler possui vários filtros que você pode configurar caso queira ter acesso a requests específicos. Ele também nos dá poder para fazer outras coisas que podemos precisar em cenários mais complexos, que abordarei em artigos futuros.

***

(Cross-post de: http://high5devs.com/2017/02/interceptando-requests-do-seu-app-com-o-fiddler/)

***

Este artigo foi produzido em parceria com a Lambda3. Leia outros conteúdos no blog da empresa: blog.lambda3.com.br.