Android Restful HTTP Request , GET and POST method

Posted: 30/03/2013 in Android
Thẻ:,

Khi sử dụng web service Restful để giao tiếp giữa client và server thì ta phải thông qua giao thức HTTP.

Thường nếu ko có gởi dữ liệu gì từ client lên server mà mục đích là chỉ get dữ liệu có sẵn về thì ta thường được bên server cung cấp một link (JSON link) để get data cần lấy về.

Nhưng khi bên client muốn gởi thông tin đến server và lấy dữ liệu về dựa vào các thông tin này thì ta phải sự dụng một http resquest.

Ví dụ như ta muốn tìm kiếm một việc làm có chứa chữ “android” trên server của một website tìm kiếm việc làm thì ta phải gởi request có chữa dữ liệu là một String “Android”.

Hoặc khi ta đăng nhập với username và password, ta phải gởi request tới server kèm theo 2 dữ liệu này và nhận được sự phản hồi từ server và dựa vào dữ liệu phản hồi này để biết là thông tin đăng nhập là đúng hay sai.

Để thực hiện một HTTP Request ta có 2 cách thông thường đó là dùng GET và POST method. Hai method này giống nhau ở chỗ đều dùng để gởi thông tin lên server và lấy kết quả trả về nhưng có một số điểm khác biệt sau đây :

– Get thì nhanh hơn Post

– Get gởi data đính kèm trên url luôn nên những  thông tin này ko được bảo mật, còn đối với Post thì thông tin này được gởi ngầm nên độ bảo mật cao hơn.

Ví dụ GET Method :  http://myhost.com/mypath/myscript.cgi?name1=value1&name2=value2

Như vậy ở 2 ví dụ phía trên, khi ta cần tìm việc làm liên quan tới android thì ta nên sử dụng GET method vì thông tin gởi lên ko phải bảo mật.

Và ví dụ về gởi thông tin đăng nhập gồm username và pass thì bắt buột phải dùng POST method để ẩn đi 2 thông tin này.

Dữ liệu trả về từ server có thể là một chuỗi, một số hoặc một Json  Object. 

 

Today I will describe shortly how to execute http GET and POST request on Android platform.
The code is very simple and straightforward, for post request with attachement, you would have to add apache-mime4j-0.6.jar and httpmime-4.0.1.jar to your build path.

HTTP GET

1
2
3
4
5
6
7
8
9
10
11
12
13
try {
        HttpClient client = new DefaultHttpClient();  
        String getURL = “http://www.google.com”;
        HttpGet get = new HttpGet(getURL);
        HttpResponse responseGet = client.execute(get);  
        HttpEntity resEntityGet = responseGet.getEntity();  
        if (resEntityGet != null) {  
                    //do something with the response
                    Log.i(“GET RESPONSE”,EntityUtils.toString(resEntityGet));
                }
} catch (Exception e) {
    e.printStackTrace();
}

HTTP POST

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
     try {
        HttpClient client = new DefaultHttpClient();  
        String postURL = “http://somepostaddress.com”;
        HttpPost post = new HttpPost(postURL); 
            List<NameValuePair> params = new ArrayList<NameValuePair>();
            params.add(new BasicNameValuePair(“user”, “kris”));
            params.add(new BasicNameValuePair(“pass”, “xyz”));
            UrlEncodedFormEntity ent = new UrlEncodedFormEntity(params,HTTP.UTF_8);
            post.setEntity(ent);
            HttpResponse responsePOST = client.execute(post);  
            HttpEntity resEntity = responsePOST.getEntity();  
            if (resEntity != null) {    
                Log.i(“RESPONSE”,EntityUtils.toString(resEntity));
            }
    } catch (Exception e) {
        e.printStackTrace();
    }

HTTP POST with File attachment

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
File file = new File(“path/to/your/file.txt”);
try {
         HttpClient client = new DefaultHttpClient();  
         String postURL = “http://someposturl.com&#8221;;
         HttpPost post = new HttpPost(postURL); 
     FileBody bin = new FileBody(file);
     MultipartEntity reqEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);  
     reqEntity.addPart(“myFile”, bin);
     post.setEntity(reqEntity);  
     HttpResponse response = client.execute(post);  
     HttpEntity resEntity = response.getEntity();  
     if (resEntity != null) {    
               Log.i(“RESPONSE”,EntityUtils.toString(resEntity));
         }
} catch (Exception e) {
    e.printStackTrace();
}

Advertisements

Trả lời

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Đăng xuất / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Đăng xuất / Thay đổi )

Connecting to %s