ดึงข้อมูลจากแหล่งต่าง ๆ ด้วย Titanium.Network.HTTPClient

เนื่องจากในปัจจุบันนั้นการดึงข้อมูลจาก Provider ต่าง ๆ นั้นเป็นสิ่งที่จำเป็นเนื่องจากหากเราต้องจัดเกบข้อมูลเองทั้งหมดคงไม่เป็นเรื่องที่ดีอย่างแน่นอน จึงทำให้เกิด Service ในรูปแบบต่าง ๆ เช่น RESTful และ SOAP ซึ่งทั้ง 2 อย่างนี้จะเป็นมาตรฐานการรับส่งข้อมูลในรูปแบบของ Web Service ที่ปัจจุบันมีใช้กันอย่างแพร่หลาย และการที่เราต้องการข้อมูลประเภทนี้ ทาง Appceletor ผู้พัฒนา Titanium Studio ได้สร้าง API ตามมาตรฐานของ XMLHttpRequest และ API ที่เราจะทำการเรียกใช้นั่นก็คือ

Titanium.Network.HTTPClient


โดยเจ้า Titanium.Network.HTTPClient จะมีวิธีการใช้งานอย่างไรนั้นเรามาติดตามกันครับ

ก่อนอื่นเราดูโครงสร้างของมันกันก่อนครับ

var url = "http://www.mobidevthai.com";
var xhr = Ti.Network.createHTTPClient({
           onload: function(e) {
                                 Ti.API.debug(this.responseText);
                                 alert('success');
           },
           onerror: function(e) {
                                 Ti.API.debug(e.error);
                                 alert('error');
           },
           timeout:5000
});

xhr.open("GET", url);
xhr.send();


ทีนี้เรามาลงในรายละเอียดกันครับ
  • onload เป็น Function ที่จะถูกเรียกเมื่อมีการตอบสนองจาก URL ปลายทาง ซึ่งจะมีการตอบสนอง 3 แบบคือ
    • this.responseText จะเป็นการรับค่าที่เป็นลักษณะของ JSON หรือ ข้อมูลที่เป็นลักษณะของ Text ธรรมดา ๆ 
    • this.responseXML จะเป็นการรับค่าในรูปแบบของ XML ตามมาตรฐานของ SOAP และ XML WebService ต่าง ๆ 
    • this.responseData จะเป็นการรับค่าในรูปแบบของ binary 
  • onerror เป็น Function ที่จะถูกเรียกเมื่อมีความผิดพลาดจาก URL ปลายทาง ซึ่งจะมีการตอบสนองต่าง ๆ ดังนี้
    • this.responseText จะมีลักษณะเมื่อกับ onload ที่จะเป็นการรับค่าในรูปแบบ Text แต่จะเป็นการในลักษณะของ error message ต่าง ๆ 
    • this.status จะเป็นการรับค่าของ status code ต่าง ๆ 
    • e.error เป็นการรับข้อมูลกลับมาในลักษณะของ Event Object 
และอีก Property อีก หนึ่งอันก็คือ timeout จะเป็นส่วนสำหรับกำหนดช่วงระบะเวลาให้กับ HTTPClient นี้ โดยจะมีหน่วยเป็น milliseconds

ในส่วนของ Method ที่ใช้สำหรับการเปิด Connection ของ HTTPClient นี้ก็คือ open ตรงนี้สามารถระบุ method ของ Request ของ HTTPClient นี้ได้ ว่าจะเป็น "GET" หรือ "POST"

เมื่อทำการเปิด Connection แล้วก็ทำการ send() เพื่อส่ง Request นั้น ๆ ไปยัง Server ครับ

0 ความคิดเห็น:

แสดงความคิดเห็น