1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài 2 kết nối webservice

21 830 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 21
Dung lượng 435 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Kết nối các dịch vụ WEB 41.2 Các chuẩn dịch vụ Web và Giao thức ● UDDI Universal Description, Discovery and Integrated ● WSDL Web Services Description Language ● WSIL Web Services Inspec

Trang 1

Trường ĐH Khoa Học Tự Nhiên Tp Hồ Chí Minh

TRUNG TÂM TIN HỌC

2014

Lập trình Android

Bài 2 Kết nối các dịch vụ WEB

Ngành Mạng & Thiết bị di động

Trang 2

Lập trình Android (2014) – Bài 2 Kết nối các dịch vụ WEB 2

● Khái niệm

● Các chuẩn dịch vụ Web và Giao thức

2. Kết nối RESTfull Service

Nội dung

Trang 3

Lập trình Android (2014) – Bài 2 Kết nối các dịch vụ WEB 3

1.1 Khái niệm

kế để hỗ trợ khả năng tương tác giữa các ứng dụng trên các máy

tính khác nhau thông qua mạng Internet.

trong cách thức hoạt động của các dịch vụ B2B (Business to

Business) và B2C (Business to Customer)

lập trình khác nhau và chạy trên những nền tảng khác nhau nhưng

có thể truy xuất được truy xuất từ một máy khách duy nhất.

Trang 4

Lập trình Android (2014) – Bài 2 Kết nối các dịch vụ WEB 4

1.2 Các chuẩn dịch vụ Web và Giao thức

● UDDI (Universal Description, Discovery and Integrated)

● WSDL (Web Services Description Language)

● WSIL (Web Services Inspection Language)

● SOAP (Simple Object Access Protocol)

Trang 5

Lập trình Android (2014) – Bài 2 Kết nối các dịch vụ WEB 5

1.2 Các chuẩn dịch vụ Web và Giao thức

● HTTP:

 HTTP (Hypertext Transfer Protocol) Là giao thức mạng cho phép các hệ thống thông tin phân phối, và cộng tác với nhau HTTP là nên tảng giao tiếp dữ liệu cho WWW

 HTTP hoạt động trên cơ chế giao thức request – response trong mô hình điện toán client – server thông qua URL

 URL (Uniform Resource Locator) Là một URI cho biết sự tồn tại của một tài nguyên và cách thức để nhận tài nguyên đó

Trang 6

Lập trình Android (2014) – Bài 2 Kết nối các dịch vụ WEB 6

1.2 Các chuẩn dịch vụ Web và Giao thức

Trang 7

Lập trình Android (2014) – Bài 2 Kết nối các dịch vụ WEB 7

1.2 Các chuẩn dịch vụ Web và Giao thức

● HTTP:

 HTTP Status code :

 2xx Success ( Trạng thái thành công)

 3xx Redirection ( Báo chuyển hướng)

 4xx Client Error ( Báo lỗi client)

 5xx Server Error ( Báo lỗi server)

Trang 8

Lập trình Android (2014) – Bài 2 Kết nối các dịch vụ WEB 8

1.2 Các chuẩn dịch vụ Web và Giao thức

● HTTP:

 Ví dụ về Http Request:

GET http://www.fit.hcmus.edu.vn/vn/ HTTP/1.1 Accept: application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, Accept-Language: vi-VN

User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64;

Trident/4.0; GTB6.5; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; SLCC2; NET CLR 2.0.50727; NET CLR 3.5.30729; NET CLR 3.0.30729; Media Center PC 6.0; NET4.0C; NET4.0E; OfficeLiveConnector.1.5;

OfficeLivePatch.1.3; InfoPath.3; AskTbGGSV5/5.8.0.12217) chromeframe/6.0.472.63

Accept-Encoding: gzip, deflate Connection: Keep-Alive Host: www.fit.hcmus.edu.vn

Cookie:

.ASPXANONYMOUS=MG6LCiuSywEkAAAANTA2ZWNiYTAtYThiNy00MDA1LTkyN jUtYTllYzAxNTA3MTU10

Trang 9

Lập trình Android (2014) – Bài 2 Kết nối các dịch vụ WEB 9

1.2 Các chuẩn dịch vụ Web và Giao thức

● HTTP:

 Ví dụ về Http Response:

HTTP/1.0 200 OK Cache-Control: private Content-Type: text/html; charset=utf-8 Server: Microsoft-IIS/7.0

X-AspNet-Version: 2.0.50727 Set-Cookie: DotNetNukeAnonymous=7db3c001-c407-4adb-a60f-053b5dc76dc2;

expires=Thu, 30-Sep-2010 03:12:33 GMT; path=/; HttpOnly Set-Cookie: language=vi-VN; path=/; HttpOnly X-Powered-By: ASP.NET Date: Thu, 30 Sep 2010 02:52:33 GMT Content-Length: 24404

X-Cache: MISS from vweb.hcmuns.edu.vn Via: 1.0 vweb.hcmuns.edu.vn:80 (squid/2.6.STABLE16) Connection: keep-alive

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

// Nội dung trang web

Trang 10

Lập trình Android (2014) – Bài 2 Kết nối các dịch vụ WEB 10

1.2 Các chuẩn dịch vụ Web và Giao thức

● SOAP:

 SOAP - Simple Object Accesss Protocol : là một giao thức giao tiếp có cấu trúc như XML và mã hóa thành định dạng chung cho các ứng dụng trao đổi với nhau

 SOAP không định ra các ngữ nghĩa ứng dụng hoặc cách cài đặt chi tiết

SOAP cung cấp một cơ chế đơn giản và gọn nhẹ cho việc trao đổi thông tin có cấu trúc và định dạng giữa các thành phần trong một môi trường phân tán sử dụng XML

Trang 11

Lập trình Android (2014) – Bài 2 Kết nối các dịch vụ WEB 11

1.2 Các chuẩn dịch vụ Web và Giao thức

● SOAP:

 Cấu trúc SOAP:

Trang 12

Lập trình Android (2014) – Bài 2 Kết nối các dịch vụ WEB 12

1.2 Các chuẩn dịch vụ Web và Giao thức

● REST:

 REST (Representational State Transfer) là một kiểu kiến trúc phần mềm cho các hệ thống phân tán siêu truyền thông như là WWW

 Đặc trưng của REST

 Là dạng client – server

 Phân tách giao diện của client ra khỏi dữ liệu

 Cho phép mỗi thành phần phát triển độc lập

 Hỗ trợ đa nền tảng

 Mỗi yêu cầu từ client phải có đủ thông tin cần thiết để server có thể

hiểu được mà không cần phải lưu trữ thêm thông tin nào trước đó

 Tất cả tài nguyên được truy cập thông qua một interface thống nhất (HTTP GET, PUT, POST, DELETE, )

Trang 13

Lập trình Android (2014) – Bài 2 Kết nối các dịch vụ WEB 13

1. Tổng quan về dịch vụ Web

● Khai báo và kiểm soát kết nối

● Truy xuất dữ liệu phản hồi

Nội dung

Trang 14

Lập trình Android (2014) – Bài 2 Kết nối các dịch vụ WEB 14

2.1 Khai báo và kiểm soát kết nối

● Quy tắc chung:

 Không thực hiện các kết nối trong các tiến trình chính của ứng dụng (MainThread)

 Mỗi kết nối cần được duy trì cho đến hết phiên tương tác

 Khai báo quyền truy cập trong AndroidManifest.xml

 <uses-permission android:name=”android.permission.INTERNET”/>

 Khai báo quyền kiểm soát kết nối trên thiết bị.

 <uses-permission android:name=”android.permission.ACCESS_NETWORK_STATE”/>

Trang 15

Lập trình Android (2014) – Bài 2 Kết nối các dịch vụ WEB 15

2.1 Khai báo và kiểm soát kết nối

Kiểm soát kết nối:

● Ví dụ kiểm soát kết nối bằng kết nối Broadcast Receiver:

BroadcastReceiver mNetworkStateIntentReceiver = new BroadcastReceiver() {

@Overridepublic void onReceive(Context context, Intent intent) {ConnectivityManager cm = ((ConnectivityManager) context

Trang 16

Lập trình Android (2014) – Bài 2 Kết nối các dịch vụ WEB 16

2.1 Khai báo và kiểm soát kết nối

org.apache.http

● Thực thi kết nối thông qua HttpURLConnection với phương thức

GET :

HttpURLConnection connection = null;

Url url = new URL(“http://221.132.37.130:6969/OnlineShopWebService”);

connection = (HttpURLConnection) url.openConnection();

connection.setConnectTimeout(10000);

connection.setReadTimeout(10000);

connection.setRequestMethod("GET");

Trang 17

Lập trình Android (2014) – Bài 2 Kết nối các dịch vụ WEB 17

2.1 Khai báo và kiểm soát kết nối

● Thực thi kết nối thông qua HttpURLConnection với phương thức

POST :

Url url = new URL(“http://221.132.37.130:6969/OnlineShopWebService”);

HttpURLConnection connection = (HttpURLConnection) url.openConnection();

Trang 18

Lập trình Android (2014) – Bài 2 Kết nối các dịch vụ WEB 18

2.1 Khai báo và kiểm soát kết nối

● Thực thi kết nối với lớp org.apache.http.HttpGet :

InputStream content = null;

try {

HttpGet httpGet = new HttpGet(url));

HttpClient httpclient = new DefaultHttpClient();

HttpResponse response = httpclient.execute(httpGet);

content = response.getEntity().getContent();

} catch (Exception e) {

Log.d("[GET REQUEST]", "Network exception" + e);

}

Trang 19

Lập trình Android (2014) – Bài 2 Kết nối các dịch vụ WEB 19

2.1 Khai báo và kiểm soát kết nối

● Thực thi kết nối với lớp org.apache.http.HttpPost :

HttpClient httpClient = new DefaultHttpClient();

HttpPost httpPost = new HttpPost(url);

// Dữ liệu thiết lập dạng JSON.

List<NameValuePair> nvps = new ArrayList<NameValuePair>();

nvps.add(new BasicNameValuePair("jsonParam", jsonObject

.toString()));

// Thiết lập dữ liệu trên đường truyền.

httpPost.setEntity(new UrlEncodedFormEntity(nvps, "UTF-8"));

HttpResponse httpResponse = httpClient.execute(httpPost);

Trang 20

Lập trình Android (2014) – Bài 2 Kết nối các dịch vụ WEB 20

2.2 Truy xuất dữ liệu phản hồi

Việc truy xuất dữ liệu không phụ thuộc vào cách thức gọi dịch vụ,

dữ liệu luôn là InputStream , chỉ cần thực đọc dòng dữ liệu này và

chuyển đội thành dạng dữ liệu tương ứng cần tương tác.

● Ví dụ:

HttpEntity httpEntity = httpResponse.getEntity();

InputStream inputStream = httpEntity.getContent();

BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));

String line;

while ((line = reader.readLine()) != null) {builder.append(line);

}Log.d("HTSI", builder.toString());

inputStream.close();

Trang 21

Lập trình Android (2014) – Bài 2 Kết nối các dịch vụ WEB 21Thảo luận

Ngày đăng: 05/04/2015, 21:44

TỪ KHÓA LIÊN QUAN

w