Most popular

วันจันทร์ที่ 21 มีนาคม พ.ศ. 2554

Delphi 2010 ทดสอบการเชื่อมต่อกับ Web Service (.asmx)

ปกติผู้เขียนจะไม่ใช้ Delphi เชื่อมต่อ Web Service ผู้เขียนจะใช้ C#.Net เป็นหลักทั้งตัวของ Web Service และ Thin client เพราะเขียนในภาษาเดียวกันอีกทั้งการส่งผ่าน DataSet ก็ยังสะดวกกว่า แต่ในความที่ผู้เขียนผูกพันกับ Delphi ตั้งแต่ Delphi 5 จึงขอทดสอบเป็นประสบการณ์ โดยผู้เขียนจะใช้ Delphi 2010 เป็นตัวทดสอบ

1. เมื่อสร้าง Project เปล่าๆ ขึ้นมาแล้ว (สร้างโดยเลือก VCL Form) จะพบกับ Form เปล่า ผู้เขียนนำ Component HTTPRIO มาใช้บน Form ดังภาพ


2. ผู้เขียนนำเข้าไฟล์ที่เป็นประเภท WSDL (ไฟล์นี้เปรียบเสมือนคู่มือการใช้ฟังชั่นของ Web Service) โดยไปที่ File > New > Other... > Delphi project > Web Service และเลือก WSDL Importer


3. จากนั้นก็ใส่ที่อยู่ของ Web Service ตอนแรกก็ยังงง ว่ามันอยู่ที่ไหนเพราะ Web Service ของ .Net จะเป็นไฟล์ .asmx ก็แค่เติม "?WSDL" แล้วกด Next (ตามภาพ)
 

 พบ Dialog ถามถึง Version ของ Soap ที่ใช้ในการส่งข้อมูล ผู้เขียนเลือกเป็น Automatic


หลังจากนั้นก็จะพบกับการตั้งค่ามากมาย ผู้เขียนใช้ค่าเริ่มต้นเพราะเป็นเพียงการทดสอบ แล้วกด Finish


 4. จากนั้น Delphi จะทำการสร้าง unit ขึ้นมาเพื่อให้เราใช้งานกับ Web Service ตามที่ไฟล์ WSDL กำหนดไว้ ผู้เขียนตรวจสอบ Function ที่สร้างขึ้นมาเพื่อเชื่อมต่อว่าลิงค์ที่อยู่ถูกต้องหรือไม่

 5. ผู้เขียนเข้าไปตั้งค่า Properties ของ HTTPRIO1 เพื่อให้ทำงานกับ unit ที่ Delphi สร้างให้ โดยถ้าใส่ที่อยู่ในช่อง WSDLLocation ถูกแล้ว ค่าต่างๆจะมีให้เลือกเอง

 6. ทดสอบด้วยการใส่ Code ภายในปุ่ม Button1 Even Click

 procedure TForm1.Button1Click(Sender: TObject);
 Var
   
ws: Service1Soap;
 begin
   
ws:=email.GetService1Soap(false,'',nil);
    ShowMessage(ws.HelloWorld);

 end;


จาก Code เป็นการเรียกใช้ Method HelloWorld ที่เขียนไว้ที่ Web Service โดยจะส่งค่ากลับมาเป็น String


 

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