9 Ekim 2014 Perşembe

Java ile Websitesine Post Atma, Bilgi Alma

Mühendislikte herşey ihtiyaçlardan ve gerekiliklerden doğar; bu yazı Java ile Curl gibi post atıp içindeki bilgileri nasıl kullanılacağını çok basit bir örnek ile anlatacağım.
Fırat Üniversitesi Üniversite evi’nde her gün ne yemek çıkacağı Fırat Üniversitesi sayfasında yazmakta; ama cep telefonlarından ilgili sayfanın açılması süreci hem zahmetli hem ücretli hem zaman kaybı. Bunu engellemek için; ilgili sayfadaki bilgiyi alan bir uygulama geliştirmeye karar verdik. Ben java tarafını yazdım. Hüseyin Varol’da Android.
Sistem şöyle çalışıyordu; Java ile URL’ye post atılıyor; gelen sonuç içerisinden regular expression ile yemek isimleri ayrıştırılıp ekrana yansıtılıyor. (Post ismini vermiş olsak ta GET ile attık)
Bu Android uygulamasını şuradan indirebilirsiniz (Hazırlanıyor)
Aynı uygulamanın Windows Phone platformu için hali yoldadır :)

GET ATMA

1) İmportlarımız
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLEncoder;
2) İnput Açma ve Buffered Reader ile okuma
URL url = new URL(“http://web.firat.edu.tr/universiteevi/index.htm”);
InputStream response = url.openStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(response));
for (String line; (line = reader.readLine()) != null;) {
}
reader.close();

POST ATMA

1) İmportlarımız 
import java.io.BufferedReader;
import java.io.File;
import java.io.FileWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
3) Parametrelerimizi Ayarlama 
String data = URLEncoder.encode(“ddlKurumTuru”, “UTF-8″) + “=” + URLEncoder.encode(“1″, “UTF-8″);
data += “&” + URLEncoder.encode(“ddlil”, “UTF-8″) + “=” + URLEncoder.encode(“1″, “UTF-8″);
3) İnput Açma ve Buffered Reader ile okuma 
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream());
//write parameters
writer.write(data);
writer.flush();
// Get the response
StringBuffer answer = new StringBuffer();
BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
answer.append(line +”\n”);
}
writer.close();
reader.close();
result = answer.toString();

NOTLAR

Not1: Try-Catch’a Almayı unutmayın
Not2: URL yazarken http gibi url’nin protokolünü belirtmeyi unutmayın örneğin:”http://web.firat.edu.tr/universiteevi/index.htm”
Not3: String tum = tum + line gibi birşeyle tüm sayfanın kaynak kodunu bir string’e atabilirsiniz
Not4: Sayfanın tam adresini bulmanız gerekmektedir; sanal adresleme veya başka bir yöntem ile çalışmaz yani tam olarak index.html gibi bir değer bulmanız gerekmektedir. Bazı server’lar bu değerleri sizin tarayıcınızda göstermez, ben almak için http viewer programlarından birini kullandım.
Alıntıdır.  amungen.wordpress.com

Hiç yorum yok:

Yorum Gönder