TRUNG TÂM TIN HỌC
2014
Lập trình Android
Kết nối các dịch vụ WEB
Ngành Mạng & Thiết bị di động
!""#$%&'()*+", /0 2
1. Tổng quan về dịch vụ Web
●
+12
●
+34", /56-78
2. Kết nối RESTfull Service
Nội dung
!""#$%&'()*+", /0 3
1.1 Khái niệm
Dịch vụ Web (Web Service) là là một hệ thống phần mềm được thiết
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.
Dịch vụ Web được coi là một công nghệ mang đến cuộc cách mạng
trong cách thức hoạt động của các dịch vụ B2B (Business to
Business) và B2C (Business to Customer) .
Các phần mềm trên dịch vụ Web được viết bởi những ngôn ngữ
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.
!""#$%&'()*+", /0 4
1.2 Các chuẩn dịch vụ Web và Giao thức
Các chuẩn dịch vụ Web:
●
9::;#9-5<=:5<>:<-5?";55"'
●
/@:#/56@5-5<:5<35'
●
/@;#/56@5-5<;<535'
●
@A!B#@2=5A6C5!5<<B='
!""#$%&'()*+", /0 5
1.2 Các chuẩn dịch vụ Web và Giao thức
Các nền giao thức:
●
BD
B#?55E<F5B='82GH+1
*IJ*>-K+-L3B=M
)"N=13///
BGOKP)85Q35<(5<<52I
O1+=5(<5-5IQ39R
9R#9F2R5<35'2K9R;6)<GS2K
3?-+8OT3?OU
!""#$%&'()*+", /0 6
1.2 Các chuẩn dịch vụ Web và Giao thức
Các nền giao thức:
●
BD
+P8D
0!:
70
BA@
B9
:000
R!0
AB;A@
A0
B!
!""#$%&'()*+", /0 7
1.2 Các chuẩn dịch vụ Web và Giao thức
Các nền giao thức:
●
BD
B@3<"5D
EE@35<<#G+I'
VEER5"5#+3?TL'
&EE=50#+=W=5'
XEE@5-50#+=W<5-5'
!""#$%&'()*+", /0 8
1.2 Các chuẩn dịch vụ Web và Giao thức
Các nền giao thức:
●
BD
Y".-ZR5Q35<D
GET 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
!""#$%&'()*+", /0 9
1.2 Các chuẩn dịch vụ Web và Giao thức
Các nền giao thức:
●
BD
Y".-ZR5<<5D
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
!""#$%&'()*+", /0 10
1.2 Các chuẩn dịch vụ Web và Giao thức
Các nền giao thức:
●
@A!BD
@A!B[@2=5A6C5!5<<<B=D=2K8)U\3
]^-2_UO,"G3+8".
O`-L3
@A!BaIO,+Nb8".c+Oc)
@A!B3\2KP)OPM-d-1O`I
U\3]-O,"GN+e2K2I
J+<f".^
!""#$%&'()*+", /0 11
1.2 Các chuẩn dịch vụ Web và Giao thức
Các nền giao thức:
●
@A!BD
\3]@A!BD
!""#$%&'()*+", /0 12
1.2 Các chuẩn dịch vụ Web và Giao thức
Các nền giao thức:
●
R0@D
R0@#R55<5=@5<F5'=2KaT3a)]e2Z2
+1*J+<33?ZI=///
cSR0@
"G=5(<5-5
BJ+"1S=5ag"N=13
H2We+TOK=
WhOZM
W?3e3i=5MUOSIe)OT<5-5UT
T3Oh2aIeM=3N2ILOU
\M3?Oh3?IQ32K5F5*\
#B70>B9>BA@>:000>'
!""#$%&'()*+", /0 13
1. Tổng quan về dịch vụ Web
2. Kết nối RESTfull Service
●
6+-aT2<+a)*
●
3?E3\"N=13M
Nội dung
!""#$%&'()*+", /0 14
2.1 Khai báo và kiểm soát kết nối
Khai báo kết nối:
●
j3?k3D
I1+a)*+) S8".
#5"'
Wa)*eOh"3? O))P+
6+Q3?Z3?!""F5<E2=
l3<5<[52<<""D25mn""52<<;0R0nop
6+Q3?ZaT2<+a)*)6,
l3<5<[52<<
""D25mn""52<<!0@@q0/ARq@!0nop
!""#$%&'()*+", /0 15
2.1 Khai báo và kiểm soát kết nối
Kiểm soát kết nối:
●
Y".aT2<+a)*6ra)*"<R55-5D
"<R55-525sa@5;5R55-5m5s
"<R55-5#'t
uA-5"5
36=-"R55-5#5E5E>;55't
5-?52m##5-?5'5E
5@?<52@5-5#5ECONNECTIVITY_SERVICE''v
F#25!-55sa;F#'wm3=='t
oo1Ef=xaaIUa)*
y5=<5t
ooYaaIUa)*
y
yyv
!""#$%&'()*+", /0 16
2.1 Khai báo và kiểm soát kết nối
Thực hiện kết nối: việc kết nối có thể thực hiện thông qua giao
thức truyền tải URL thông thường hoặc sử dụng các lớp trong gói
org.apache.http.
●
a)*IQ39R5-LP8
70D
9R55m3==v
9=3=m5s9R#zDoo%%VV{%V$D|}|}oA=5@/56@5-5n'v
5m#9R5'3=55#'v
5<55253#%$$$$'v
5<5R5"253#%$$$$'v
5<5R5Q35<5"#~70~'v
!""#$%&'()*+", /0 17
2.1 Khai báo và kiểm soát kết nối
Thực hiện kết nối:
●
a)*IQ39R5-LP8
BA@D
9=3=m5s9R#zDoo%%VV{%V$D|}|}oA=5@/56@5-5n'v
9R55m#9R5'3=55#'v
5<55253#%$$$$'v
5<5R5Q35<5"#~BA@~'v
5<5R5Q35<B5?#~5[?5~>~=oC<~'v
5<5:A33#35'v
// Gửi dữ liệu thông qua OutputStream
A33@5233@52m
5s3FF55"A33@52#55A33@52#''v
33@52s5#2B2<5?5<#''v
33@52F=3<#'v
33@52=<5#'v
!""#$%&'()*+", /0 18
2.1 Khai báo và kiểm soát kết nối
Thực hiện kết nối:
●
a)*-L=L575D
;3@525m3==v
?t
7575m5s75#3=''v
=5=5m5s:5F3==5#'v
R5<<55<<5m=55E535#75'v
5m5<<550?#'55#'v
y#0E55't
"#~•70R0j90@€~>~5sa5E5~•5'v
y
!""#$%&'()*+", /0 19
2.1 Khai báo và kiểm soát kết nối
Thực hiện kết nối:
●
a)*-L=L5B<D
=5=5m5s:5F3==5#'v
B<B<m5sB<#3='v
// Dữ liệu thiết lập dạng JSON.
<l25Y=35Bp-<m5s!?<l25Y=35Bp#'v
-<""#5s<25Y=35B#~C<B2~>C<A6C5
@#'''v
// Thiết lập dữ liệu trên đường truyền.
B<<50?#5s9=0"5"‚20?#-<>~9‚[ƒ~''v
R5<<5R5<<5m=55E535#B<'v
!""#$%&'()*+", /0 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.
●
Y".D
0?0?mR5<<550?#'v
;3@523@52m0?55#'v
3FF55"R5"55"5m
5s3FF55"R5"5#5s;3@52R5"5#3@52''v
@=5v
s=5##=5m5"55"5#''wm3=='t
63="55"#=5'v
y
"#~@;~>63="5@#''v
3@52=<5#'v
!""#$%&'()*+", /0 21
Thảo luận