Tuesday, April 19, 2011

Koneksi URL dan Web Browsing Dengan JAVA

Apakah aplikasi JAVA mampu mengambil data dari suatu Web Server di internet melalui protokol HTTP seperti Web Browser?

Jawabannya adalah ya. JAVA memiliki class URL yang sudah merupakan bawaan dari JRE library sejak JDK versi 1.0 yang bisa langsung kita pakai pada pengembangan aplikasi JAVA Standard (J2SE). Dengan class ini kita dapat merequest data HTML/file/Stream, mengambil atau mengirim Cookies dari Web Server dan mengambil informasi spesifikasi Web Server.



Berikut adalah contoh penggunaan class URL :

package urlconnector;

import java.io.BufferedInputStream;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

public class URLConnector {
 
 public static void main (String[] args) {  
  System.out.println("Hasil : \n" + URLConnector.getHTTPResource("http://www.google.com"));
 }
 
 public static String getHTTPResource (String link) {
  StringBuffer result = new StringBuffer();
   
  try {
   
   System.out.println("Melakukan koneksi ke " + link + "...");
   URL url = new URL(link);
   
   URLConnection con = url.openConnection();
   
   con.addRequestProperty("User-Agent", "Mozilla/3.6");
   
   
   BufferedInputStream in = new BufferedInputStream(con.getInputStream());
   
   System.out.println("Koneksi berhasil.");
   System.out.println("Membaca data...");
   
   int buff;
   // membaca data dari web server per byte
   while ((buff = in.read()) != -1) {
    result.append((char)buff);
   }
   
   System.out.println("Selesai.");
       
  } catch (MalformedURLException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }
  
  return result.toString();
 }
 
}

Class URL dipakai pada method getHTTPResource() dimana method ini akan mengembalikan data berupa String yang diambil dari alamat link yang dimasukan pada konstruktor class URLConnector.

Pada kode diatas terdapat con.addRequestProperty("User-Agent", "Mozilla/3.6"); yang berfungsi agar Web Server mengenali aplikasi kita sebagai browser yang sudah dikenal oleh umum, sebagai contoh saya masukan di atas adalah Mozilla firefox versi 3.6. Jika baris kode ini dihilangkan maka Web Server akan menganggap aplikasi kita sebagai browser mobile, sehingga content yang diberikannya juga berupa content yang diperuntukan untuk mobile.

Eksekusi class tersebut dan pastikan bahwa alamat link yang diisi pada code diatas valid dalam artian saat ini komputer rekan-rekan terkoneksi ke internet :)

Berikut screenshot console saat aplikasi dijalankan :


Dari percobaan class diatas, dapat dikembangkan lagi menjadi berbagai aplikasi yang memanipulasi data dari banyak Web Server di internet seperti Web Crawler, Web Scraper dan lain-lain.

Selamat mencoba :)

1 comment:

  1. wahh,, sangat membantu sekali !!

    bagaimana cara mengcompile nya gan?
    terima kasih sebelumnya.

    ReplyDelete