.NET HttpWebRequest ve HttpWebResponse kullanılarak yapılan istekleri ve yanıtları yakalamak için Fiddler'ı bağlayabildiğim herhangi bir yol var mı?HbpWebRequest/HttpWebResponse kullanılarak yapılan HTTP istekleri ve yanıtları alın Fiddler
cevap
Check this blog post Bence istediğini bu.
Yapamıyorsanız, Wireshark, ağ donanım düzeyinde çalışan benzer bir araçtır, bu nedenle herhangi bir uygulamadan ağ trafiğini yakalayabilir.
Wireshark, Fiddler'dan biraz daha karmaşıktır ve daha geneldir, ancak araç kutunuzda olması ve biraz zaman ayırmaya değecek harika bir araçtır.
@Charming Anonim Downvoter: "Yapamazsan" dediğim yeri özledin mi? Yardımcı olmaya çalıştığım için beni affet. – RichieHindle
@Richie: Düşürmeyi nötralize ettim çünkü neden olduğunu da anlayamıyorum. – tuergeist
@tuergeist: Teşekkürler. Sen bir centilmensin. Fiddler'ı tamamlamak için Wireshark için – RichieHindle
Fiddler SSS bunun cevabını verir.
Temel olarak HTTP trafiğinizi Fiddler aracılığıyla yönlendirin (örn. Fiddler'ı bir proxy olarak kullanın).
Fiddler Web Debugging - Configuring Clients
Hangi dönüş bağlantılarda burada:
Take the Burden Off Users with Automatic Configuration in .NET
Web.config dosyasında bazı yapılandırma ayarlarından bunu başarabilirsiniz (bir ASP için Buraya
yardımcı olacak bazı bağlantılar var şöyle .NET uygulaması):<system.net>
<defaultProxy>
<proxy
proxyaddress="http://[your proxy address and port number]"
bypassonlocal="false"
/>
</defaultProxy>
</system.net>
0 üzerinde tüm ayrıntılar için here bakınayarı.
Alternatif olarak, böyle bir şey kullanarak kodunda WebProxy nesneyi kullanabilirsiniz:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("[ultimate destination of your request]");
WebProxy myproxy = new WebProxy("[your proxy address]", false);
request.Proxy = myproxy;
request.Method = "GET";
HttpWebResponse response = (HttpWebResponse) request.GetResponse();
WebProxy sınıfı üzerindeki tüm ayrıntılar için here bakınız.
Neden trafik http://localhost veya http://127.0.0.1 gönderilen görmüyorum:
Ayrıca bu Kemancı SSS belirtilen önemli "ihtar" notu?
IE7 ve .NET Framework herhangi vekilleri üzerinden Localhost talepleri gönderme değil önceden kodlanmıştır ve bir vekil olarak Fiddler böyle trafik almayacaktır.Bu geçici çözüm, makine adınızı Localhost veya ana bilgisayar adı veya 127.0.0.1 olarak kullanmaktır. Bu nedenle, örneğinde, http://localhost:8081/mytestpage.aspx, yerine vurmak yerine http://machinename:8081/mytestpage.aspx'u ziyaret edin. Eğer Fiddler v2.1.8 kullanarak ya da geç, sadece IPv4 adaptör üzerinde localhost'u vurmak için http://ipv4.fiddler kullanmak veya IPv6 adaptör üzerinde localhost'u vurmak http://ipv6.fiddler kullanmak eğer
... Veya,.Bu , özellikle sınama sunucusunun IPv4 geri döngü bağdaştırıcısını dinlediği için Visual Studio test web sunucusu (kod adı: Cassini) ile iyi çalışır.
Son olarak, dosya böylece sevdiği Kurallar özelleştirme olabilir: o zaman
static function OnBeforeRequest(oSession:Fiddler.Session) { if (oSession.HostnameIs("MYAPP")) { oSession.host = "127.0.0.1:8081"; } }
... ve sadece 127.0.0.1:8081 için takma olarak hareket edecek olan http://myapp çarptı.
localhost.fiddler
için hostname değiştirin: İsteği URI değiştirmek edebiliyoruz ve bulocalhost
ise
herkese yardımcı olması durumunda, – Dave
için teşekkürler, http: // [proxy adresiniz ve port numaranız] için varsayılan değer http://127.0.0.1:8888, Araçlar> Fiddler'da bağlantı noktasını kontrol edebilir/değiştirebilirsiniz Seçenekler –
sonra çok daha basit bir çözüm yoktur.
Bu, proxy'leri ayarlama konusunda bir bağımlılığa sahip değildir (veya <defaultProxy>
öğesinin .config
dosyasında ayarlanması). (this question üzerine açıklama itibaren.)
Belki sorunuzu anlamıyorum ama Fiddler web ayıklayıcı (vekil) 'dir. İstekleriniz proxy üzerinden gönderildiyse, onu yakalar. Lütfen, (gerçekten) ne yapmak istediğinizi tanımlayın. – tuergeist