มือใหม่รบกวนสอบถามเรื่อง PHP Web Service จากอาจารย์ทุกๆท่านครับ
คือ ผมใหม่มากๆ สำหรับ web form, php และ webservice ครับ
พอดีได้อ่านจากใน thaicreate เรื่อง php webservice ที่ใช้ nusoap ที่อาจารย์วินท่านเขียนไว้
ก็ทำได้ test เรียกด้วย php page และ winform ก็โอเคแต่เกิดข้อสงสัยครับ
1. เราสามารถทดสอบ service ที่เขียนขึ้นโดยใช้ Fiddler ได้มั้ยครับ
2. จากที่ไปดูไฟล์ server.php?wsdl ก็จะเห็นชื่อ function เช่น http://dev-pc/nusoap/WebServiceServer.php/GetItemData
แต่พอลองเอา url ไปวางใน browser ก็จะได้ error กลับมา
3. บังเอิญไปเจอตัวอย่าง ios เรียกเว็บ service มา แล้วเขาก็ให้ url ของ webservice มาคือ
https://itunes.apple.com/search?term=facebook&entity=software&attribute=softwareDeveloper&country=de
ซึ่งมันเป็นเหมือน url และเป็นแบบ get โดยจากข้อที่ 2 function นั้น ผมรับ parameter 1 ตัวชื่อ strItem
ผมก็เลยเอามาพิมพ์ใน url ใน browser เป็น http://dev-pc/nusoap/WebServiceServer.php/GetItemData?strItem=a
ซึ่งก็ error อีก จึงขอรบกวนอาจารย์ทุกๆท่านครับ url https://itunes.apple.com/search....(ด้านบน) แบบนั้นเป็น url
ของ webservice หรือปล่าวครับ แล้วถ้าใช่ เขาเขียนด้วยเทคโนโลยีอะไร หรือผมต้องแก้ service ผมอย่างไรให้เรียกผ่าน browser
ได้เหมือนเขาครับ
อันนี้เป็น service ของผมครับ
Code (PHP)
<?php
require_once($_SERVER['DOCUMENT_ROOT'] . "/libs/nusoap.php");
//Create a new soap server
$server = new soap_server();
//Define our namespace
$namespace = "http://localhost/service/pos.php";
$server->wsdl->schemaTargetNamespace = $namespace;
//Configure our WSDL
$server->configureWSDL("POS");
$varname2 = array(
'strItemCode' => "xsd:string"
);
$server->register('GetItemData',$varname2, array('return' => 'xsd:string'));
function GetItemData($strItemCode){
$itemName = "";
try {
$conn = mysql_connect('localhost', 'root', 'root1234');
if (!$conn){
return 'Connection Failed...';
}
mysql_select_db('mydb');
mysql_query('SET NAMES UTF8');
$queryString = "select * from mitem where itemcode = '" . $strItemCode . "' LIMIT 1";
$result = mysql_query($queryString);
if ($result == FALSE){
return "Query Error ".$queryString;
}else{
if ($result != null && mysql_num_rows($result) != 0 ){
$colCount = mysql_num_fields($result);
$tempArray = array();
while($temp = mysql_fetch_array($result)){
$dd ="";
$arrCol = array();
for($col = 0; $col <= $colCount-1; $col++){
$arrCol[mysql_field_name($result, $col)] = $temp[$col];
}
array_push($tempArray, $arrCol);
}
$itemName = json_encode(array("resultCount"=> mysql_num_rows($result) , "results" => $tempArray));
return $itemName;
}else{
return "Not Found...";
}
}
mysql_close($conn);
}
catch(Exception $e) {
return "Error Catch : " . $e->getMessage();
}
return "Hello " . $itemName;
}
$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();
?>
Tag : PHP, MySQL, Web Service
Date :
2016-01-22 17:55:00
By :
คนงานตัดอ้อย
View :
751
Reply :
1
Load balance : Server 04