Commons Httpclient

Jakarta tarafından geliştirilen bu proje HTTP protokolünde esnek bir erişim olanağını uygulamalarınızda kullanmanızı sağlamaktadır. Bir çok uygulama HTTP protokolü kullanarak web üzerinden bilgi alımını Httpclient projesiyle gerçekleştirmektedir. Ben de çalışmasını denemek ve kullanımının kolaylığını anlamak için örnek bir proje yaptım.
Bu projedeki amacım Google ve Altavista'daki dil çevirme yeteneklerine Httpclient ile erişerek bir metin kutusundaki metni seçilen diller arasında (Türkçe desteği yok, çünkü bu servislerin de Türkçe desteği yok) çevirmesini sağlamak. Bunu yapmamın tek amacı Httpclient'ın yeteneklerini denemekten ibaret. Bunu siz çok daha farklı işler için de kullanabilirsiniz.

Aşağıda yaptığım uygulamanın ekran görüntüsü var:

Gelelim bir HTTP servisine erişmek için ne yaptığım konusuna; Aşağıdaki sınıf sizin de işinizi görecektir. Post ile çağrılan formları program içerisinden çağırmanızı mümkün kılacaktır. Dilerseniz GET yöntemini de desteklemek için sınıfı genişletebilirsiniz. Bu sınıftaki executeMethod metodunu çalıştırdığınız zaman sayfada submit düğmesine basmanızla ilgili eylemin çalışmasıyla oluşan web sayfasının içeriği döndürülecektir. Daha sonra yapılan işlem bu web sayfasını içerisinden istediğiniz veriyi String parsing ile almaktır. Elbette bu yöntemin bir çok eksisi var ancak en kolayı budur :)

Programın kodlarına şuradan bakabilirsiniz.

Kodu incelediğiniz zaman web sayfasındaki formda girilmesi gereken verilerin parametre olarak verildiğini göreceksiniz. Elbette bu formun eylemini gerçekleştiren sunucu taraflı script değiştikçe benim de kodumu uygun şekilde değiştirmem gerekecek. :)

Kaynak: http://wiki.apache.org/jakarta-httpclient/HttpClientPowered

5 yorum:

Unknown dedi ki...

httpclient kodumuzu nasıl çalıştıracağız? ne gerekli?küçük bir nasılyaparsak bunu işleyebiliriz.yani bahsedilen url yi httpclientin bir browseri mi var
?jar dosyaları ve kütüphanaleer nasıl kullanılacak

T. E. Kalaycı dedi ki...

Merhaba,

Soruyu tam anlamadım ama sanırım JAR'ları nereye koyacağımızı soruyorsunuz. JAR dosyalarını yani gereken kütüphaneleri classpathe eklemek gerekiyor. Yazıda verdiğim örnek, her ne kadar sürümü eskise de, JARların classpathe koyulmasıyla çalışacaktır.

http://kodveus.blogspot.com/2008/06/jdbc-veritabanlar-classpath-falan-filan.html yazısının sonunda classpathlerden bahsetmiştim.

Unknown dedi ki...

claspath ayarları demiyorum.yazdığım java kodunu htppclient olarak bir web sayfasını parse etmem için nerde derlemem lazım.yani bunu nasıl yapacam? jakartanın httpclientı sanırım 4.0 bunlar lib ve jar dosyalarından oluşuyorum.java kodumu örnedğin sizin burda yazdığınız görünen kodu nasıl çalıştıracağım?benim sorum bu.

T. E. Kalaycı dedi ki...

Merhaba,

Bir Eclipse projesi olarak derleyebilirsiniz veya bildiğimiz Java derlemesini kullanabilirsiniz. Bu noktada classpathe ihtiyacınız olacak. Jakarta'nın kütüphanesini bulabilmesi lazım benim yazdığım kodun.Benim indirebilirsiniz dediğim sıkıştırılmış dosyayı indirip içerisindeki OWT.bat dosyasını çalıştırdığınızda (GNU/Linux için OWT.sh) program çalışacaktır. Ben gerekli ayarları orada yapıyorum. O dosyaları inceleyip nasıl yapıldığını da görebilirsiniz. Bu dosyalar basit bir metin dosyasıdır.

T. E. Kalaycı dedi ki...

Doğru çalışmayabilir çünkü google ve altavistanın hizmetleri değişmiştir.