Networking trong Android

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down

Networking trong Android Empty Networking trong Android

Bài gửi by nuong 29/12/2015, 15:17

Sử dụng giao thức HTTP, bạn có thể thực hiện một loạt các nhiệm vụ, chẳng hạn như tải các trang web từ một máy chủ web, tải dữ liệu nhị phân,... trong lập trình android. Sau đây chúng ta sẽ tạo ra một dự án Android để bạn có thể sử dụng giao thức HTTP để kết nối vào Web để tải về tất cả các loại dữ liệu.
- Sử dụng Eclipse, tạo một dự án Android mới và đặt tên nó Networking.
- Thêm các báo cáo sau đây in đậm vào file AndroidManifest.xml:
Code:
<?xml​ version=”1.0”​encoding=”utf-8”?>
Code:

[size=16]<manifest​ xmlns:android=”http://schemas.android.com/apk/res/android”[/size]
[size=16]​​​​​​package=”net.learn2develop.Networking”[/size]
[size=16]​​​​​​android:versionCode=”1”[/size]
[size=16]​​​​​​android:versionName=”1.0”>[/size]
[size=16]​​​​<application​ android:icon=”@drawable/icon”​android:label=”@string/app_name”>[/size]
[size=16]​​​​​​​​<activity​ android:name=”.MainActivity”[/size]
[size=16]​​​​​​​​​​​​​​​​​​android:label=”@string/app_name”>[/size]
[size=16]​​​​​​​​​​​​<intent-filter>[/size]
[size=16]​​​​​​​​​​​​​​​​<action​ android:name=”android.intent.action.MAIN”​/>[/size]
[size=16]​​​​​​​​​​​​​​​​<category​ android:name=”android.intent.category.LAUNCHER”​/>[/size]
[size=16]​​​​​​​​​​​​</intent-filter>[/size]
[size=16]​​​​​​​​</activity>[/size]
[size=16]​​​​</application>[/size]
[size=16]​​​​<uses-sdk​ android:minSdkVersion=”8”​/>[/size]
[size=16]​​​​<uses-permission android:name=”android.permission.INTERNET”></uses-permission>[/size]
[size=16]</manifest>
- Nhập khẩu các không gian tên sau đây trong tập tin MainActivity.java:
Code:
package​ net.learn2develop.Networking;
Code:

[size=16]import​ android.app.Activity;[/size]
[size=16]import ​android.os.Bundle;[/size]
[size=16]import java.io.IOException;[/size]
[size=16]import java.io.InputStream;[/size]
[size=16]import java.io.InputStreamReader;[/size]
[size=16]import java.net.HttpURLConnection;[/size]
[size=16]import java.net.URL;[/size]
[size=16]import java.net.URLConnection;[/size]
[size=16]import android.graphics.Bitmap;[/size]
[size=16]import android.graphics.BitmapFactory;[/size]
[size=16]import android.widget.ImageView;[/size]
[size=16]import android.widget.Toast;[/size]
[size=16]import javax.xml.parsers.DocumentBuilder;[/size]
[size=16]import javax.xml.parsers.DocumentBuilderFactory;[/size]
[size=16]import javax.xml.parsers.ParserConfigurationException;[/size]
[size=16]import org.w3c.dom.Document;[/size]
[size=16]import org.w3c.dom.Element;[/size]
[size=16]import org.w3c.dom.Node;[/size]
[size=16]import org.w3c.dom.NodeList;[/size]
[size=16]public​ class ​MainActivity​ extends ​Activity​{[/size]
[size=16]​​​​/**​Called​ when​ the​ activity​ is​ first ​created.​*/[/size]
[size=16]​​​​@Override[/size]
[size=16]​​​​public ​void​ onCreate(Bundle​ savedInstanceState)​{[/size]
[size=16]​​​​​​​​super.onCreate(savedInstanceState);[/size]
[size=16]​​​​​​​​setContentView(R.layout.main);[/size]
[size=16]​​​​}[/size]
[size=16]}


Xem thêm: khoa hoc photoshop cơ bản nâng cao tại hà nọi !
- Xác định phương pháp OpenHttpConnection() trong file MainActivity.java:


Code:
[/COLOR][/FONT]public ​class ​MainActivity ​extends​ Activity​{[/COLOR][/FONT]
Code:

[size=16][COLOR=#333333][FONT=Courier 10 Pitch]​​​​private InputStream OpenHttpConnection(String urlString)[/FONT][/COLOR][/size]
[size=16][COLOR=#333333][FONT=Courier 10 Pitch]​​​​throws IOException[/FONT][/COLOR][/size]
[size=16][COLOR=#333333][FONT=Courier 10 Pitch]​​​​{[/FONT][/COLOR][/size]
[size=16][COLOR=#333333][FONT=Courier 10 Pitch]​​​​​​​​InputStream in = null;[/FONT][/COLOR][/size]
[size=16][COLOR=#333333][FONT=Courier 10 Pitch]​​​​​​​​int response = -1;[/FONT][/COLOR][/size]
[size=16][COLOR=#333333][FONT=Courier 10 Pitch]​​​​​​​​URL url = newURL(urlString);[/FONT][/COLOR][/size]
[size=16][COLOR=#333333][FONT=Courier 10 Pitch]​​​​​​​​URLConnection conn = url.openConnection();[/FONT][/COLOR][/size]
[size=16][COLOR=#333333][FONT=Courier 10 Pitch]​​​​​​​​if(!(conn instanceof HttpURLConnection))[/FONT][/COLOR][/size]
[size=16][COLOR=#333333][FONT=Courier 10 Pitch]​​​​​​​​​​​​throw new IOException(“Not​an​HTTP​connection”);[/FONT][/COLOR][/size]
[size=16][COLOR=#333333][FONT=Courier 10 Pitch]​​​​​​​​try{[/FONT][/COLOR][/size]
[size=16][COLOR=#333333][FONT=Courier 10 Pitch]​​​​​​​​​​​​HttpURLConnection httpConn = (HttpURLConnection) conn;[/FONT][/COLOR][/size]
[size=16][COLOR=#333333][FONT=Courier 10 Pitch]​​​​​​​​​​​​httpConn.setAllowUserInteraction(false);[/FONT][/COLOR][/size]
[size=16][COLOR=#333333][FONT=Courier 10 Pitch]​​​​​​​​​​​​httpConn.setInstanceFollowRedirects(true);[/FONT][/COLOR][/size]
[size=16][COLOR=#333333][FONT=Courier 10 Pitch]​​​​​​​​​​​​httpConn.setRequestMethod(“GET”);[/FONT][/COLOR][/size]
[size=16][COLOR=#333333][FONT=Courier 10 Pitch]​​​​​​​​​​​​httpConn.connect();[/FONT][/COLOR][/size]
[size=16][COLOR=#333333][FONT=Courier 10 Pitch]​​​​​​​​​​​​response = httpConn.getResponseCode();[/FONT][/COLOR][/size]
[size=16][COLOR=#333333][FONT=Courier 10 Pitch]​​​​​​​​​​​​if(response == HttpURLConnection.HTTP_OK) {[/FONT][/COLOR][/size]
[size=16][COLOR=#333333][FONT=Courier 10 Pitch]​​​​​​​​​​​​​​​​in = httpConn.getInputStream();[/FONT][/COLOR][/size]
[size=16][COLOR=#333333][FONT=Courier 10 Pitch]​​​​​​​​​​​​}[/FONT][/COLOR][/size]
[size=16][COLOR=#333333][FONT=Courier 10 Pitch]​​​​​​​​}[/FONT][/COLOR][/size]
[size=16][COLOR=#333333][FONT=Courier 10 Pitch]​​​​​​​​catch(Exception ex)[/FONT][/COLOR][/size]
[size=16][COLOR=#333333][FONT=Courier 10 Pitch]​​​​​​​​{[/FONT][/COLOR][/size]
[size=16][COLOR=#333333][FONT=Courier 10 Pitch]​​​​​​​​​​​​throw new IOException(“Error​ connecting”);[/FONT][/COLOR][/size]
[size=16][COLOR=#333333][FONT=Courier 10 Pitch]​​​​​​​​}[/FONT][/COLOR][/size]
[size=16][COLOR=#333333][FONT=Courier 10 Pitch]​​​​​​​​returnin;[/FONT][/COLOR][/size]
[size=16][COLOR=#333333][FONT=Courier 10 Pitch]​​​​}[/FONT][/COLOR][/size]
[size=16][COLOR=#333333][FONT=Courier 10 Pitch]​​​​/**​Called​ when ​the ​activity​ is​ first ​created.​*/[/FONT][/COLOR][/size]
[size=16][COLOR=#333333][FONT=Courier 10 Pitch]​​​​@Override[/FONT][/COLOR][/size]
[size=16][COLOR=#333333][FONT=Courier 10 Pitch]​​​​public ​void​ onCreate(Bundle​ savedInstanceState)​{[/FONT][/COLOR][/size]
[size=16][COLOR=#333333][FONT=Courier 10 Pitch]​​​​​​​​super.onCreate(savedInstanceState);[/FONT][/COLOR][/size]
[size=16][COLOR=#333333][FONT=Courier 10 Pitch]​​​​​​​​setContentView(R.layout.main);[/FONT][/COLOR][/size]
[size=16][COLOR=#333333][FONT=Courier 10 Pitch]​​​​}[/FONT][/COLOR][/size]
[size=16][COLOR=#333333][FONT=Courier 10 Pitch]}[/FONT][/COLOR]
Bởi vì bạn đang sử dụng giao thức HTTP để kết nối với Web, ứng dụng của bạn cần sự cho phép INTERNET; do đó, điều đầu tiên bạn làm là thêm các phép trong fileAndroidManifest.xml. Sau đó, bạn xác định các phương pháp OpenHttpConnection() , trong đó có một chuỗi URL và trả về một đối tượng InputStream. Sử dụng một đối tượng InputStream, bạn có thể tải về các dữ liệu bằng cách đọc byte từ dòng đối tượng.
Trong phương pháp này, bạn đã sử dụng của các đối tượng HttpURLConnection để mở một kết nối HTTP với một URL từ xa. Bạn thiết lập tất cả các thuộc tính khác nhau của kết nối, chẳng hạn như các phương thức yêu cầu, và như vậy:


Code:
[/COLOR][/FONT]HttpURLConnection​ httpConn​=​(HttpURLConnection)​conn;[/COLOR][/FONT]
Code:

[size=16][COLOR=#333333][FONT=Courier 10 Pitch]​​​​​​​​​​​​httpConn.setAllowUserInteraction(false);[/FONT][/COLOR][/size]
[size=16][COLOR=#333333][FONT=Courier 10 Pitch]​​​​​​​​​​​​httpConn.setInstanceFollowRedirects(true);[/FONT][/COLOR][/size]
[size=16][COLOR=#333333][FONT=Courier 10 Pitch]​​​​​​​​​​​​httpConn.setRequestMethod(“GET”);[/FONT][/COLOR]
Sau khi bạn cố gắng để thiết lập kết nối với máy chủ, bạn sẽ có được mã phản hồi HTTP từ nó. Nếu kết nối được thiết lập (thông qua các HTTP_OK mã phản ứng), sau đó bạn tiến hành để có được một đối tượng InputStream từ các kết nối:


Code:
[/COLOR][/FONT]httpConn.connect();[/COLOR][/FONT]
Code:

[size=16][COLOR=#333333][FONT=Courier 10 Pitch]​​​​​​​​​​​​response​=​httpConn.getResponseCode();[/FONT][/COLOR][/size]
[size=16][COLOR=#333333][FONT=Courier 10 Pitch]​​​​​​​​​​​​if​(response​==​HttpURLConnection.HTTP_OK)​{[/FONT][/COLOR][/size]
[size=16][COLOR=#333333][FONT=Courier 10 Pitch]​​​​​​​​​​​​​​​​in​=​httpConn.getInputStream();[/FONT][/COLOR][/size]
[size=16][COLOR=#333333][FONT=Courier 10 Pitch]​​​​​​​​​​​​}[/FONT][/COLOR]
Sử dụng đối tượng InputStream, sau đó bạn có thể bắt đầu tải về các dữ liệu từ máy chủ.


---------------- || ----------------
Trung tâm Đào tạo học lập trình Mobile với các Khoa hoc lap trinh android cơ bản nâng cao tại VietPro!
nuong
nuong
Cấp 1
Cấp 1

Bài gửi : 23
Điểm : 3288
Like : 0
Tham gia : 02/12/2015

Về Đầu Trang Go down

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang


Permissions in this forum:
Bạn không có quyền trả lời bài viết