Esiste un modo in .NET per ascoltare a livello di codice il traffico HTTP?
-
02-07-2019 - |
Domanda
Uso l'automazione del browser per testare i siti Web ma devo verificare le richieste HTTP dal browser (ad esempio immagini, script esterni, oggetti XmlHttpRequest). Esiste un modo per creare un'istanza programmatica di un proxy o di uno sniffer di pacchetti che il browser può utilizzare per vedere che cosa sta inviando?
Sto già usando Fiddler per guardare il traffico, ma voglio qualcosa che sia UI-less e che possa usare in integrazione continua della build.
Posso facilmente ottenere le informazioni specifiche HTTP da WinpCap?
Soluzione
Prova winpcap. È una combinazione driver / libreria che può essere utilizzata per monitorare i pacchetti. In base a ciò che stai cercando di fare (guarda il traffico senza interfaccia utente), questa è probabilmente una soluzione più semplice rispetto alla scrittura del tuo proxy.
Altri suggerimenti
Probabilmente non vuoi fare il proxy, ciò introdurrà molta complessità non necessaria.
Considera invece lo sniffing dei pacchetti , che è praticamente un problema risolto. Wireshark è utile come utility autonoma che puoi utilizzare manualmente, ma è anche possibile eseguire lo sniffing dei pacchetti a livello di codice, utilizzando WinPcap, la libreria su cui si basa Wireshark. Ecco un paio di esempi di WinPcap in .Net, .NetNomad esempio con esempio progetto e un tutorial di CodeProject , anche con l'origine.
Esistono numerose app per questo. La mia raccomandazione è Wireshark
Hai esaminato l'implementazione di un modulo Http o di un gestore Http (.ashx)? Ti permetteranno di intercettare ogni singola richiesta web ed elaborarle di cui hai bisogno prima di accedere alla tua pagina.