YOMEDIA
ADSENSE
Bài tập Web Service - TTTH ĐH KHTN
128
lượt xem 15
download
lượt xem 15
download
Download
Vui lòng tải xuống để xem tài liệu đầy đủ
Bài tập Web Service cung cấp cho người học một số lý thuyết và bài tập liên quan đến Web Service. Tài liệu gồm có các nội dung chính như: Giới thiệu về Web Service cho ứng dụng trên thiết bị di động, các công nghệ dùng để xây dựng Web Service cho ứng dụng di động, tương tác giữa Web Service với các web service khác. Mời các bạn cùng tham khảo.
AMBIENT/
Chủ đề:
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài tập Web Service - TTTH ĐH KHTN
- TRUNG TÂM TIN HỌC - ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP. HCM 227 Nguyễn Văn Cừ – Quận 5 – Tp. Hồ Chí Minh Tel: 08 38351056 – Fax 08 38324466 – Email: ttth@t3h.hcmus.edu.vn BÀI TẬP Web Service
- Bài tập MỤC LỤC BÀI 1. GIỚI THIỆU VỀ WEB SERVICE CHO ỨNG DỤNG TRÊN THIẾT BỊ DI ĐỘNG ......................................................................................................................... 3 Bài tập 1.1. Dùng thiết bị di động tương tác với dịch vụ Web .................................. 3 BÀI 2. CÁC CÔNG NGHỆ DÙNG ĐỂ XÂY DỰNG WEB SERVICE CHO ỨNG DI ĐỘNG – PHẦN 1 ........................................................................................................ 9 Bài tập 2.1. Dùng công nghệ hỗ trợ truy vấn mảng dữ liệu ....................................... 9 Bài tập 2.2. Tạo các dịch vụ cho client ................................................................... 13 BÀI 3. CÁC CÔNG NGHỆ DÙNG ĐỂ XÂY DỰNG WEB SERVICE CHO ỨNG DI ĐỘNG – PHẦN 2 ...................................................................................................... 16 Bài tập 3.1. Dùng công nghệ hỗ trợ truy vấn trên hệ quản trị cơ sở dữ liệu và xây dựng dịch vụ Web theo cơ chế đồng bộ.................................................................. 16 Bài tập 3.2. Thiết lập bảo mật cho dịch vụ Web. .................................................... 29 BÀI 4. CÁC CÔNG NGHỆ DÙNG ĐỂ XÂY DỰNG WEB SERVICE CHO ỨNG DI ĐỘNG – PHẦN 2 ...................................................................................................... 33 Bài tập 4.1. Xây dựng ứng dụng lấy dữ liệu từ hệ quản trị cơ sở dữ liệu trả ra từ dịch vụ Web. ................................................................................................................. 33 Bài tập 4.2. Thực hiện gửi và nhận tài nguyên (hình ảnh, âm thanh…) trên Android và dịch vụ Web. ..................................................................................................... 36 Trang 1/40
- Bài tập BÀI 1. GIỚI THIỆU VỀ WEB SERVICE CHO ỨNG DỤNG TRÊN THIẾT BỊ DI ĐỘNG Mục tiêu: Hiểu được nguyên tắc hoạt động của dịch vụ Web Đọc dữ liệu từ dịch vụ Web Bài tập 1.1. Dùng thiết bị di động tương tác với dịch vụ Web Đề bài: Dùng thiết bị Android (iOS hoặc Windows Phone) truy xuất đến Web Service và đọc dữ liệu trả về. Mục tiêu: - Biết cách truy xuất đến Web Service. - Biết dùng thư viện hộ trợ tương tác với Web Service. Gợi ý thực hiện: - Dùng 2 gói thư viện: o httpclient-4.0.jar (tại: http://www.java2s.com/Code/Jar/h/Downloadhttpclient40jar.htm): để gửi yêu cầu đến Web Service. o httpcore-4.4.1.jar (tại: https://hc.apache.org/downloads.cgi): để nhận dữ liệu trả về. - Tạo lớp “DefaultHttpClient” để tương tác với Web Service. - Tạo lớp để thực hiện lấy dữ liệu theo dạng Post (dùng lớp: HttpPost), Get (dùng lớp: HttpGet), Put (dùng lớp: HttpPut), Delete (dùng lớp: HttpDelete)… Khi khởi tạo lớp này cần truyền địa chỉ đến. - Dùng lớp “HttpResponse” để nhận lại dữ liệu trả về từ phương thức “execute” của lớp “DefaultHttpClient” đã tạo ở trên. - Dùng các lớp hỗ trợ để thực hiện lấy dữ liệu từ lớp “HttpResponse”. Hướng dẫn chi tiết: Bước 1: Tải thư viện hỗ trợ. Bước 1. 1: Tải bộ httpclient-4.0.jar tại: http://www.java2s.com/Code/Jar/h/Downloadhttpclient40jar.htm Trang 2/40
- Bài tập Bước 1. 2: Tải bộ httpcore-4.4.1.jar tại: https://hc.apache.org/downloads.cgi Tải thư viện. Giải nén và vào thư mục “libs” lấy thư viện cần dùng. Bước 2: Tạo Project Android lấy dữ liệu từ Web Service trên IIS. Bước 2. 1: Tạo Project “Task1”. Trang 3/40
- Bài tập Bước 2. 2: Chép thư viện httpclient-4.0.jar và httpcore-4.4.1.jar vào project như hình. Trang 4/40
- Bài tập Bước 2. 3: Vào Task1 → app → build.gradle để biên dịch thư viện trong thư mục “libs”, như sau: Bước 2. 4: Tạo lớp “ServiceHandler” để lấy dữ liệu từ Web Service trả về. Tạo lớp thực hiện gửi yêu cầu lên Web Service, đối tượng này nằm trong thư viện mà ta đã biên dịch ở trên. DefaultHttpClient defaultHttpClient = new DefaultHttpClient(); Tiếp theo tạo lớp để yêu cầu lấy dữ liệu theo phương thức (GET, POST, PUT…), mỗi phương thức sẽ có một lớp xử lý riêng cho phương thức đó. Đầu tiên ta lấy dữ liệu theo phương thức GET như sau: String paramString = URLEncodedUtils.format(params, "utf-8"); HttpGet httpGet = new HttpGet(url + "?" + paramString); Trong đó: Trang 5/40
- Bài tập “params” là một danh sách “List params”. Danh sách params này là chứa các cặp key và value, key ở đây là các đối số nhận vào của phương thức trong Web Service và value là giá trị của đối số đó. Nếu phương thức không có đối số truyền vào ta có thể để null hoặc khởi tạo một danh sách không có giá trị để truyền vào phương thức “URLEncodedUtils.format()”. “url” là địa chỉ đến phương thức trong Web Service mà ta muốn yêu cầu. Ví dụ: http://172.22.26.125/api/Foods/GetFoods. Thiết lập kiểu dữ liệu và dạng mã hóa dữ liệu gửi đi thông qua lớp “HttpGet” đã được khởi tạo. httpGet.setHeader("Accept", "application/json"); httpGet.setHeader("Accept-Encoding", "gzip"); Nhận những thông tin trả về bằng lớp “HttpResponse” thông qua 2 lớp đã được khởi tạo ở trên là “DefaultHttpClient” và “HttpGet” như sau: HttpResponse httpResponse = defaultHttpClient.execute(httpGet); Nhận thực thể trả về từ “HttpResponse”. HttpEntity httpEntity = httpResponse.getEntity(); Kiểm tra các thông số mã hóa của dữ liệu trả về từ Web Service có trùng khớp. Và khởi tạo đầu đọc dữ liệu tương ứng. InputStream inputStream = httpEntity.getContent(); Header contentEncoding = httpResponse .getFirstHeader("Content-Encoding"); if (contentEncoding != null && contentEncoding.getValue().equalsIgnoreCase( "gzip")) { inputStream = new GZIPInputStream(inputStream); } Thực hiện đọc dữ liệu trả về và hiển thị ra “Log”. String resultString = convertStreamToString(inputStream); inputStream.close(); Log.e("TQKy", "resultString: " + resultString); Bước 2. 5: Xin quyền truy xuất Internet trong file “AndroidManifest.xml”. Trang 6/40
- Bài tập Bước 2. 6: Qua lớp “MainActivity” gọi phương thức vừa xử lý trong lớp “ServiceHandler” và xem kết quả qua “Log”. Trang 7/40
- Bài tập BÀI 2. CÁC CÔNG NGHỆ DÙNG ĐỂ XÂY DỰNG WEB SERVICE CHO ỨNG DI ĐỘNG – PHẦN 1 Mục tiêu: Biết sử dụng công nghệ hỗ trợ để truy vấn dữ liệu Biết xây dựng các dịch vụ cơ bản trên dịch vụ Web Bài tập 2.1. Dùng công nghệ hỗ trợ truy vấn mảng dữ liệu Đề bài: Sử dụng các cách truy vấn của LinQ để thực hiện truy vấn mảng số nguyên, mảng chuỗi và mảng đối tượng. Mục tiêu: - Sử dụng được nhiều cách truy vấn dữ liệu của LinQ. - Biết cách tách và gom các dữ liệu giữa hai mảng đối tượng. - Biết thống kê dữ liệu trên mảng đối tượng. - Gọi được các phương thức được viết ở ngoài vào câu truy vấn của LinQ. Gợi ý thực hiện: - Tham khảo tại: https://drive.google.com/file/d/0BxQSNUuAZeIMcmx6VDFHNUgyc1U/view? usp=sharing Hướng dẫn chi tiết: Sắp xếp mảng số nguyên với điều kiện các phần tử phải nhỏ hơn 5. int[] nums = new int[] { 0, 4, 2, 6, 3, 8, 3, 1 }; string s; var result = nums.Where(n => n < 5).OrderBy(n => n); s = "Extension method format: "; foreach (var i in result.ToList()) { s += i + " "; } Console.WriteLine(s); Dùng từ khóa “Where” để thiết lập điều kiện lấy dữ liệu. Từ khóa “OrderBy” để thực hiện sắp xếp mảng. Hoặc cách truy vấn thứ 2: Trang 8/40
- Bài tập var result2 = from n in nums where n < 5 orderby n select n; s = "Query Expression format: "; foreach (var i in result2.ToList()) { s += i + " "; } Console.WriteLine(s); Trong đó: “from n” là khởi tạo một biến “n” để duyệt từng phần tử trong (“in”) mảng “nums” gán vào biến “n”. “where” là thiết lập điều cho phần tử, “orderby” là sắp xếp phần tử và “select” là lấy các phần tử thỏa các điều kiện. Tạo biến cục bộ trong câu lệnh truy vấn. var variance1 = from element in nums let average = nums.Average() select Math.Pow((element - average), 2); s = "Let—Create a Local Variable: "; foreach (var i in variance1.ToList()) { s += i + " "; } Console.WriteLine(s); Dùng từ khóa “let” để khởi tạo biến cục bộ và dùng nó trong các từ khóa “where”, “select”… var variance2 = nums.Select(element => new { element = element, average = nums.Average() }).Select(temp => Math.Pow(((double)temp.element - temp.average), 2)); s = "Let—Create a Local Variable: "; foreach (var i in variance2.ToList()) { s += i + " "; } Console.WriteLine(s); Dùng “Select” lần thứ nhất để tạo biến cục bộ và các giá trị của biến đó. Dùng “Select” lần thứ hai để chọn các giá trị đã được xử lý, có dùng các biến cục bộ đã tạo. Sắp xếp mảng đối tượng theo 2 thuộc tính. List contacts = Contact.SampleData(); var q = contacts.Where(c => c.State == "DakLak") .OrderBy(c => c.LastName) .ThenBy(c => c.FirstName); Trang 9/40
- Bài tập foreach (Contact c in q) { Console.WriteLine("{0} {1}", c.FirstName, c.LastName); } Dùng từ khóa “ThenBy” để thêm thuộc tính cần sắp xếp. var q = from c in contacts where c.State == "DakLak" orderby c.LastName, c.FirstName select c; foreach (Contact c in q) { Console.WriteLine("{0} {1}", c.FirstName, c.LastName); } Sau từ khóa “orderby” là các thuộc tính cần sắp xếp và ngăn cách nhau bằng dấu phẩy. Sử dụng sắp xếp dùng “delegate” cho mảng đối tượng. contacts.Sort(delegate (Contact c1, Contact c2) { if (c1 != null && c2 != null) return string.Compare(c1.LastName, c2.LastName); return 0; }); Trong từ khóa “delegate” ta có thể gọi các phương thức tự viết để kiểm tra dữ liệu. Thực hiện gom 2 mảng đối tượng theo 2 thuộc tính của 2 đối tượng có cùng giá trị. List callLog = CallLog.SampleData(); var q3 = callLog.Join(contacts, call => call.Number, contact => contact.Phone, (call, contact) => new { contact.FirstName, contact.LastName, call.When, call.Duration }).OrderByDescending(call => call.When); foreach (var call in q3) { Console.WriteLine("{0} {1} {2} {3}", call.When, call.FirstName, call.LastName, call.Duration); } Dùng “Join” để thực hiện gom mảng đối tượng “CallLog” vào mảng đối tượng Trang 10/40
- Bài tập “Contact” với điều kiện giá trị thuộc tính “Number” của đối tượng “CallLog” phải bằng giá trị thuộc tính “Phone” của đối tượng “Contact”, đối số cuối cùng là dữ liệu trả về (dữ liệu được trả ra là một đối tượng mới có các thuộc tính của 2 đối tượng “CallLog” và “Contact”). “OrderByDescending” là dùng để sắp xếp giảm dần. Cách gom 2 mảng đối tượng thứ 2 là: var q4 = (from call in callLog join contact in contacts on call.Number equals contact.Phone orderby call.When descending select new { contact.FirstName, contact.LastName, call.When, call.Duration }).Take(5); foreach (var call in q4) { Console.WriteLine("{0} {1} {2} {3}", call.When, call.FirstName, call.LastName, call.Duration); } “Take(5)” là lấy 5 phần tử đầu của mảng đối tượng trả về. Gọi các phương thức đã thiết lập ở ngoài. } string[] animals = new string[] { "Koala", "Kangaroo","Spider", "Wombat", "Snake", "Emu", "Shark","Sting-Ray", "Jellyfish" }; var q = from a in animals where MyPredicate(a) select a; } public bool MyPredicate(string a) { if (a.StartsWith("S") && a.Length > 5) return true; else return false; } Trang 11/40
- Bài tập Bài tập 2.2. Tạo các dịch vụ cho client Đề bài: Tạo các dịch vụ và viết các phương thức trả dữ liệu cho client. Như lấy thời gian hệ thống, giải phương trình bậc 2-3… Mục tiêu: - Biết cách trả dữ liệu cho client từ Web Service đã dựng sẵn. - Áp dụng LinQ vào các Service. Gợi ý thực hiện: - Tạo các “Controller” trong thư mục “Controllers”. - Tạo các phương thức HTTP (HttpGet, HttpPost…) cho các phương thức xử lý. Hướng dẫn chi tiết: Bước 1: Click chuột phải thêm lớp xử lý cho thư mục “Controllers”. Bước 2: Chọn thêm “controller…” Trang 12/40
- Bài tập Bước 3: Tạo Controller rỗng. Bước 4: Đặt tên cho Controller. Trang 13/40
- Bài tập Bước 5: Viết phương thức xử lý để trả về cho Client. Trang 14/40
- Bài tập BÀI 3. CÁC CÔNG NGHỆ DÙNG ĐỂ XÂY DỰNG WEB SERVICE CHO ỨNG DI ĐỘNG – PHẦN 2 Mục tiêu: Lấy được dữ liệu từ hệ quản trị cơ sở dữ liệu Xây dựng cơ chế đồng bộ An toàn cho dịch vụ Web Bài tập 3.1. Dùng công nghệ hỗ trợ truy vấn trên hệ quản trị cơ sở dữ liệu và xây dựng dịch vụ Web theo cơ chế đồng bộ. Đề bài: Xây dựng Entity Data Model. Thực hiện truy vấn, thêm, xóa, sửa dữ liệu. Mục tiêu: - Tạo được Entity Data Model. - Hiểu được cách hoạt động của Entity Data Model. - Biết dùng các phương thức nhận dữ liệu. - Biết cách truy vấn, cập nhật dữ liệu và đồng bộ dữ liệu. Gợi ý thực hiện: - Tạo ADO.NET Entity Data Model trong thư mục “Models”. - Kết nối đến cơ sở dữ liệu để ánh xạ các bảng dữ liệu thành các lớp. - Tạo các Controllers xử lý, truy vấn trên bảng dữ liệu. - Sử dụng cơ chế đồng bộ dữ liệu. Hướng dẫn chi tiết: Bước 1: Xây dựng cơ sở dữ liệu mức cơ bản. Trang 15/40
- Bài tập Bước 2: Tạo ADO.NET Entity Data Model trong thư mục “Models”. Bước 2. 1: Vào “Add” để tạo ADO.NET Entity Data Model. Bước 2. 2: Chọn ADO.NET Entity Data Model. Trang 16/40
- Bài tập Bước 2. 3: Đặt tên cho lớp quản lý các bảng. Bước 2. 4: Chọn mô hình kết nối. Trang 17/40
- Bài tập Bước 2. 5: Chọn kết nối đến cơ sở dữ liệu, nếu chưa có thì tạo mới kết nối. Trang 18/40
- Bài tập Bước 2. 6: Thiết lập thông số kết nối đến cơ sở dữ liệu. Trang 19/40
ADSENSE
CÓ THỂ BẠN MUỐN DOWNLOAD
Thêm tài liệu vào bộ sưu tập có sẵn:
Báo xấu
LAVA
AANETWORK
TRỢ GIÚP
HỖ TRỢ KHÁCH HÀNG
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn