2012-03-08 21 views
21

Şu anda bir sunucuya csv dosyası ve diğer birkaç parametreyi yüklemek için HTTP POST kullanan bir java uygulaması yazıyorum. Sunucu, uygulamasına 500 hata döndürüyor ve FDBL'deki HTTP isteğini görmek istiyorum, böylece POST isteğini görebiliyorum.
Fiddler'ı çalıştırdığımda, Java uygulamasından HTTP trafiğini yakalamayacaktır. Çalıştığım bir GET isteği yazdım, bu yüzden sunucuyla iletişim kurabildiğimi biliyorum, ancak Fiddler aracılığıyla hiçbir trafik gösterilmiyor.Fiddler Java uygulamalarından HTTP isteklerini yakalamıyor

+0

var mı bir Java Servlet yazı işleme? –

+0

, https trafik olmadığından emin misiniz? – matcheek

+0

Yok. Sunucudaki bir API'dan bir yükleme yöntemini çağırmak için Apache'nin HTTPComponents'ını kullanıyorum. – Andrew

cevap

18

Sadece HTTPS trafiği için HTTP trafiği ve https.proxyHost/https.proxyPort için localhost ve http.proxyPort için özelliklerini

http.proxyHost ayarlayarak uygulama için HTTP proxy olarak Fiddler ayarlayabilirsiniz. HTTPS trafiği için, Fiddler kök sertifikasını (seçenekler iletişim kutusunda ihraç edilebilir) uygulamanıza güvenilir sertifika olarak eklemeniz gerekir.

Kodunuzdaki

System.setProperty("http.proxyHost", "localhost"); 
System.setProperty("http.proxyPort", "8888"); 

başında aşağıdaki satırları ekleyerek bunu veya Java-VM başlatırken komut satırı üzerinden bunları ayarlayabilirsiniz:

İskele HTTP istemcisi ile
java -Dhttp.proxyHost=localhost -Dhttp.proxyPort=8888 ... 
+0

Karşı yazdığım geliştirme sunucusu, kendim imzalı bir sertifika kullanmaktadır, böylece tüm sertifikalara güvenmek için yazılı sınıflar yazdım. ProxyHost ve proxyPort özelliklerini ayarladım, ancak yine de Fiddler aracılığıyla uygulamadan herhangi bir trafik görmüyorum. – Andrew

+0

Bunu, özelliklerde https kullanarak ve yerel ana bilgisayarı 127.0.0.1 olarak değiştirerek çalıştırabildim. – Andrew

+1

Değişikliğim, HttpURLConnection kullanan HTTP GET isteğini görüntülemeyi mümkün kıldı. POST isteği Apache'nin HttpComponents'larını kullanıyor ve bu trafiği hala göremiyorum. – Andrew

1

Önceki çözüm işe yaramıyor. ancak şu işleri:

HttpClient httpClient = new HttpClient(); 
httpClient.setProxy(new Address("127.0.0.1", 8888)); 
httpClient.start(); 
+0

Nasıl olduğunu biliyor musunuz? HTTPS ile çalışmasını sağlamak için? – Arya

İlgili konular