Oleh : Reza Ervani
بسم الله الرحمن الرحيم
Rujukan : Tutorial Apache HTTPClient oleh Lars Vogel – http://www.vogella.com/tutorials/ApacheHttpClient/article.html
Menggunakan Apache HttpClient
Pustaka Apache HttpClient menyederhanakan penangangan request HTTP. Untuk menggunakan pustaka ini, kita dapat mengunduh binary dengan dependency-nya dari http://hc.apache.org dan kemudian kita tambahkan di classpath proyek kita.
Kita menerima dan mengirimkan data via class HttpClient
. Suatu instance dari class ini dapat dibuat dengan new DefaultHttpClient();
DefaultHttpClient
adalah standar HttpClient dan menggunakan class SingleClientConnManager
untuk menangani koneksi HTTP. SingleClientConnManager
tidaklah bersifat thread-safe, ini berarti bahwa akse kesana via beberapa thread akan mengakibatkan masalah.
HttpClient menggunakan suatu HttpUriRequest
untuk mengirim dan menerima data. Subclass penting dari HttpUriRequest
adalah HttpGet
dan HttpPost
. Kita dapat menerima respon dari HttpClient
sebagai suatu InputStream
Contoh
Catatan
Kode pada contoh berikut tidak bekerja sehingga kita menyediakan backend yang diperlukan untuk menerima data. Tapi contoh ini sudah mewakili cara mensetup HttpClient. Unduh pustaka HttpClient dari website Apache. Kita dapat mengunduh paket “bin” termasuk seluruh dependency-nya
Buat proyek baru bernama com.eclipseprogramming.PenanganHTTP dan tambahkan file pustaka tadi ke path proyek Java kita.
Http Get
Berikut contoh request HTTP Get via HttpClient
HttpClient client = new DefaultHttpClient(); HttpGet request = new HttpGet("http://www.rumahilmu.net"); HttpResponse response = client.execute(request); // Get the response BufferedReader rd = new BufferedReader (new InputStreamReader(response.getEntity().getContent())); String line = ""; while ((line = rd.readLine()) != null) { textView.append(line); }
Http Post
Contoh berikut akan mengirim suatu request post ke URL http://rumahilmu.net/register dan menyertakan parameter “registrationid” yang merupakan nilai acak
package com.eclipseprogramming.PenanganHTTP; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.HttpClient; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair; public class SimpleHttpPut { public static void main(String[] args) { HttpClient client = new DefaultHttpClient(); HttpPost post = new HttpPost("http://rumahilmu.net/register"); try { List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1); nameValuePairs.add(new BasicNameValuePair("registrationid", "123456789")); post.setEntity(new UrlEncodedFormEntity(nameValuePairs)); HttpResponse response = client.execute(post); BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent())); String line = ""; while ((line = rd.readLine()) != null) { System.out.println(line); } } catch (IOException e) { e.printStackTrace(); } } }
Contoh berikut memperlihatkan request yang menambahkan beberapa parameter pada request POST.
package com.eclipseprogramming.PenanganHTTP; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.HttpClient; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair; public class TestHttpClient { public static void main(String[] args) { HttpClient client = new DefaultHttpClient(); HttpPost post = new HttpPost("https://www.google.com/accounts/ClientLogin"); try { List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1); nameValuePairs.add(new BasicNameValuePair("Email", "youremail")); nameValuePairs .add(new BasicNameValuePair("Passwd", "yourpassword")); nameValuePairs.add(new BasicNameValuePair("accountType", "GOOGLE")); nameValuePairs.add(new BasicNameValuePair("source", "Google-cURL-Example")); nameValuePairs.add(new BasicNameValuePair("service", "ac2dm")); post.setEntity(new UrlEncodedFormEntity(nameValuePairs)); HttpResponse response = client.execute(post); BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent())); String line = ""; while ((line = rd.readLine()) != null) { System.out.println(line); if (line.startsWith("Auth=")) { String key = line.substring(5); // do something with the key } } } catch (IOException e) { e.printStackTrace(); } } }
Leave a Reply