|
PHP สร้าง Web Service และใช้ .NET เรียก Web Service ของ PHP (ASP.NET and Windows Form) |
PHP สร้าง Web Service และใช้ .NET เรียก Web Service ของ PHP (ASP.NET and Windows Form) ช่วงนี้ได้เขียนบทความเกี่ยวกับพื้นฐานของ Web Service ได้พอสมควร มีทั้งภาษา .Net และก็ php หรือการเรียก Web Service ข้ามภาษากัน เช่น PHP เรียก Web Service ของ .NET ซึ่งก็สามารถกลับไปอ่านได้ในบทความก่อน ๆ นี้ และบทความนี้เป็นภาคต่อของการสร้าง Web Service ด้วย PHP แต่จะเป็นการเรียก Web Service ด้วย Application ของ .NET ในรูปแบบของ ASP.NET และ Windows Form
Screenshot
ASP.NET เรียก Web Service ของ PHP
Windows Form เรียก Web Service ของ PHP
Download nusoap library
http://sourceforge.net/projects/nusoap/
สำหรับ PHP สร้าง Web Service จะใช้ Library ของ NuSoap สามาถดาวน์โหลดได้จากลิ้งค์ข้างบน หรือจะดาวน์โหลด Source ทั้งหมดได้จากส่วนท้ายของบทความ
บทความนี้จะสร้าง Service แบบง่าย ๆ ด้วยการรับค่า Name และ Email จาก Client และมีการส่งค่ากลับไปยัง Client เช่น
Client
ตัวอย่างค่าที่ Client ส่งไปยัง Web Service
Web Service
สิ่งที่ Web Service ส่งค่ากลับมา
ขั้นตอนแรกเริ่มจากการสร้าง Web Service ของ PHP
WebServiceServer.php
<?php
require_once("lib/nusoap.php");
//Create a new soap server
$server = new soap_server();
//Define our namespace
$namespace = "http://localhost/nusoap/index.php";
$server->wsdl->schemaTargetNamespace = $namespace;
//Configure our WSDL
$server->configureWSDL("HelloWorld");
// Register our method and argument parameters
$varname = array(
'strName' => "xsd:string",
'strEmail' => "xsd:string"
);
$server->register('HelloWorld',$varname, array('return' => 'xsd:string'));
function HelloWorld($strName,$strEmail)
{
return "Hello, World! Khun ($strName , Your email : $strEmail)";
}
// Get our posted data if the service is being consumed
// otherwise leave this data blank.
$POST_DATA = isset($GLOBALS['HTTP_RAW_POST_DATA']) ? $GLOBALS['HTTP_RAW_POST_DATA'] : '';
// pass our posted data (or nothing) to the soap service
$server->service($POST_DATA);
exit();
?>
คำอธิบายสั้น ๆ
ใน Code จะมีการสร้าง Service ที่ชื่อว่า HelloWorld และมี Method ที่ชื่อว่า HelloWorld และประกอบด้วย Parameters หรือ Argument 2 ตัวคือ $strName และ $strEmail ส่วน reutn นั้นคือค่าตัวแปรสำหรับการ return ค่ากลับไปยัง Client
สร้างไฟล์ WebServiceServer.php และจัดเก็บไว้ใน nusoap\WebServiceServer.php ภายใต้ root ของ Server และตอนที่รัน Web Service ของ PHP จะได้ URL
http://localhost/nusoap/WebServiceServer.php
ในตัวอย่างจะเห็น URL ของ Web Service ประกอบด้วย Method ชื่อว่า HellowWorld ให้คลิกที่ WSDL เพื่อดูรูปแบบของ XML ที่อยู่ใน Format ของ WSDL ซึ่งตอนที่ Client เรียกใช้งาน Web Service จะเรียกด้วย URL นี้
http://localhost/nusoap/WebServiceServer.php?wsdl
รูปตัวอย่าง WSDL ใน Format ของ XML ซึ่งจะบ่งบอกรายละเอียดของ Web Service และช่องทางที่ Client จะสามารถเรียกใช้งานได้
สำหรับการสร้าง Web Service ด้วย NuSoap จะง่าย ๆ และสั้นเพียงเท่านี้ หากต้องการใช้ PHP เรียก Web Service ที่สร้างด้วย PHP สามารถอ่านได้ที่บทความนี้
PHP สร้าง Web Service และเรียก Web Service ที่สร้างด้วย PHP
เรียกใช้งาน Web Service ของ PHP ด้วย ASP.NET
ให้สร้าง Project ที่เป็น ASP.NET Web Application หรือ ASP.NET WebSite
ออกแบบ Screen และ Layout ดังรูป
คลิกขวาที่ Project ของ ASP.NET และเลือก Add Web Reference
กรอก URL ของ PHP Web Service ที่ได้จากนั้นตอนในส่วนของการสร้าง PHP Web Service
http://localhost/nusoap/WebServiceServer.php?wsdl
คลิกที่ Go และเมื่อโหลด Web Service เสร็จก็จะแสดงชื่อ Service Name และ Method ของ PHP Web Service ให้กำหนด Web reference name : ที่จะใช้เรียกใน Class ดังรูป
แสดง Web Service ที่ถูก Add Reference เข้ามาใน Project และในกรณีที่ Web Service ฝั่ง Server มีการแก้ไขหรือ Update เราจะต้องตามมา Update ที่ Project ของ ASP.NET ด้วย ด้วยการคลิกควาที่ Reference และเลือก Update.....
กลับมาที่ Web Form ของ .aspx ให้สร้าง Event ของ Button และใช้คำสั่ง New Class ของ Web Service ดังรูป ซึ่งเมื่อเรียกใช้ Method ของ PHP Web Service จะแสดง Argement หรือ Parameter ที่จะต้องส่งไปยัง PHP Web Service ที่อยู่ฝั่ง Server ดังรูป
Code เต็ม ๆ
- สำหรับภาษา VB.NET
Partial Public Class _Default
Inherits System.Web.UI.Page
Protected Sub btnCall_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnCall.Click
Dim myHW As New myHelloWorld.HelloWorld
Me.lblResponse.Text = myHW.CallHelloWorld(Me.txtName.Text, Me.txtEmail.Text).ToString()
End Sub
End Class
- สำหรับภาษา C#
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
public partial class _Default : System.Web.UI.Page
{
protected void btnCall_Click(object sender, EventArgs e)
{
myHelloWorld.HelloWorld myHW = new myHelloWorld.HelloWorld();
this.lblResponse.Text = myHW.CallHelloWorld(this.txtName.Text, this.txtEmail.Text).ToString();
}
}
ทดสอบการเรียก Web Service
เมื่อกรอก Name และ Email ดังรูป ASP.NET จะมีการเรียก Web Service ที่อยู่ในฝั่งของ PHP Web Service และ PHP ที่บริการ Web Service อยู่จะทำการ return ค่ากลับมาดังรูป
สำหรับการเรียกใช้งาน Web Service ของ PHP ด้วย ASP.NET ที่ง่าย ๆ และจบเพียงเท่านี้ สามารถดาวน์โหลดได้จากส่วนล่างของบทความ
เรียกใช้งาน Web Service ของ PHP ด้วย Windows Form Application (.NET)
สร้าง Project ด้วย Windows Form Application ใน Visual Studio หรือ Tools อื่น ๆ
สร้างและออกแบบ Form สำหรับเรียกใช้งาน Web Service ดังรูป
คลิกวาที่ Project เลือก Add Service Reference
เราจะทำการเรียกแบบ Web Reference ในที่นี้ให้เลือก Advanced....
ให้คลิกที่ Add Web Reference ดังรูปประกอบ
กรอก URL ของ PHP Web Service ที่ได้จากนั้นตอนในส่วนของการสร้าง PHP Web Service
http://localhost/nusoap/WebServiceServer.php?wsdl
คลิกที่ Go และเมื่อโหลด Web Service เสร็จก็จะแสดงชื่อ Service Name และ Method ของ PHP Web Service ให้กำหนด Web reference name : ที่จะใช้เรียกใน Class ดังรูป
กลับมาที่ Windows Form ให้สร้าง Event ที่ปุ่ม Button และกำหนดคำสั่งดังต่อไปนี้
- สำหรับภาษา VB.NET
Public Class Form1
Private Sub btnCall_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCall.Click
Dim myClsHW As New myHelloWorld.HelloWorld
Me.lblResponse.Text = myClsHW.CallHelloWorld(Me.txtName.Text, Me.txtEmail.Text).ToString()
End Sub
End Class
- สำหรับ C#
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
public class Form1
{
private void btnCall_Click(System.Object sender, System.EventArgs e)
{
myHelloWorld.HelloWorld myClsHW = new myHelloWorld.HelloWorld();
this.lblResponse.Text = myClsHW.CallHelloWorld(this.txtName.Text, this.txtEmail.Text).ToString();
}
}
ทดสอบการรันโปรแกรม
สรุป
บทความนี้เป็นเพียงพื้นฐานการสื่อสารระว่าง Web Service ที่ให้บริการ กับ Client ที่ทำการ Call ตัว Web Service แบบง่าย ๆ เพราะทางผู้เขียนบทความเองก็ยังเป็นมือใหม่กับ Web Service อยู่มาก ได้อาศัยการอ่านจากเว็บทั้งในแะนอกประเทศมาเรียบเรียงและเขียนบทความให้เข้าใจง่าย และ ตัวอย่างการดัดแปลงให้สามารถนำไปใช้งานได้หลากหลาย ซึ่งถ้าได้อ่านบทความนี้จบหรือทำตามจนเข้าใจ เราจะได้เห็นแนวทางการที่จะนำ Web Service ไปใช้งานในด้านการเขียนโปรแกรมได้อย่างดี
ผิดพลาดประการใดขออภัยมา ณ ที่นี้ด้วยครับ
Download Code !!
บทความอื่น ๆ ที่เกี่ยวข้อง
Go to : PHP Create - Call Web Service สร้างและเรียกเว็บเซอร์วิส ด้วย PHP (NuSoap and Soap)
|
|
|
|
|
|
|
|
By : |
TC Admin
|
|
Article : |
บทความเป็นการเขียนโดยสมาชิก หากมีปัญหาเรื่องลิขสิทธิ์ กรุณาแจ้งให้ทาง webmaster ทราบด้วยครับ |
|
Score Rating : |
|
|
Create Date : |
2012-05-09 |
|
Download : |
No files |
|
Sponsored Links |
|
|
|
|
|
|