導航:首頁 > 編程語言 > phpwebservice介面開發

phpwebservice介面開發

發布時間:2022-11-14 01:25:17

❶ 求大神指導php用saop調用webservice介面問題

我要調用的這個webservices需要一個密碼驗證,XML如下:

<soap:Header>
<SecuritySoapHeader xmlns="">
<Password>string</Password>
</SecuritySoapHeader>
</soap:Header>
<soap:Body>
<GetTradeByID xmlns="

<ID>string</ID>
</GetTradeByID>
</soap:Body>

❷ php 中 webservice 是如何使用的 調用別人的介面 參數是如何傳遞的

php調用web service還是非常簡單的。下面用一個例子說明:
web service服務是查詢QQ用戶是否在線
使用php5開發客戶端:
<?php
try {
//$client = new SoapClient("HelloService.wsdl",array('encoding'=>'UTF-8'));
$client = new SoapClient("webservices/qqOnlineWebService.asmx?wsdl");
var_mp($client->__getFunctions());
print("");
var_mp($client->__getTypes());
print("");

class qqCheckOnline{
var $qqCode = "10000";
};
$arrPara = array(new qqCheckOnline);

$arrResult = $client->__Call("qqCheckOnline",$arrPara);//$client->qqCheckOnline($arrPara);

echo $arrResult->qqCheckOnlineResult . "";
} catch (SOAPFault $e) {
print $e;
}
?>
代碼確實很簡單吧,創建SoapClient對象時,可以使用保存在本地WSDL文件,也可以使用遠程的地址,後面的array數組里可以帶上很多的參數,具體參數可以查php的SoapClient幫助,這里帶的是字元集編碼,如果調用方法的參數里有中文,一定要指定字元集編碼,否則會出錯。
調
用web service前可以先調用SoapClient的__geunctions()和__getTypes()方法看一下你要調用的
web service暴露的方法,參數和數據類型,需要注意的是傳入的參數名一定要和soapclient裡面定義的一致,否則參數是傳不過去的。
需要使用SoapClient的__soapCall()或__call()方法,具體使用方法可以查php的幫助文檔。如果參數要求是一個結構體,請用類代替,如上面的代碼。
另外發現個問題,如果web service方法返回的是xml格式的字元串,php接收到以後會自己把數據內容解析出來,而不是xml字元串.

❸ php的webservice怎麼用

Web Service為了異構系統的通信而產生的,它基本的思想就是使用基於XML的HTTP的遠程調用提供一種標準的機制,而省去建立一種新協議的需求。目前進行Web Service通信有兩種協議標准,一種是XML-RPC,另外一種是SOAP。XML-RPC比較簡單,出現時間比較早,SOAP比較復雜,主要是一些需要穩定、健壯、安全並且復雜交互的時候使用。

PHP中集成了XML-RPC和SOAP兩種協議的訪問,都是集中在xmlrpc擴展當中。另外,在PHP的PEAR中,不管是PHP 4還是PHP 5,都已經默認集成了XML-RPC擴展,而且該擴展跟xmlrpc擴展無關,能夠獨立實現XML-RPC的協議交互,如果沒有xmlrpc擴展,建議使用PEAR::XML-RPC擴展。

說的再多都是虛的,下面一個例子說明一切。

首先構造webservice 的服務端:

在服務端,我定義的函數是get( "helloworld" );//hello是傳入的參數

<?php
/**
* 函數:提供給RPC客戶端調用的函數
* 參數:
* $method 客戶端需要調用的函數
* $params 客戶端需要調用的函數的參數數組
* 返回:返回指定調用結果
*/
function rpc_server_func($method, $params) {
$parameter = $params[0];//傳入的函數名稱

$parameter1 = $params[1];//傳入的參數
if ($parameter == "get")
{
$return = "This data by get method".$parameter1 ;
}
else
{
$return = "Not specify method or params";
}
return $return;
}

//產生一個XML-RPC的伺服器端
$xmlrpc_server = xmlrpc_server_create();

//注冊一個伺服器端調用的方法rpc_server,實際指向的是rpc_server_func函數
xmlrpc_server_register_method($xmlrpc_server, "rpc_server", "rpc_server_func");

//接受客戶端POST過來的XML數據
$request = $HTTP_RAW_POST_DATA;

//執行調用客戶端的XML請求後獲取執行結果
$xmlrpc_response = xmlrpc_server_call_method($xmlrpc_server, $request, null);

//把函數處理後的結果XML進行輸出
header("Content-Type: text/xml");
echo $xmlrpc_response;

//銷毀XML-RPC伺服器端資源
xmlrpc_server_destroy($xmlrpc_server);
?>

用php來訪問所定義的webservice的服務端。

<?php
/**
* 函數:提供給客戶端進行連接XML-RPC伺服器端的函數
* 參數:
* $host 需要連接的主機
* $port 連接主機的埠
* $rpc_server XML-RPC伺服器端文件
* $request 封裝的XML請求信息
* 返回:連接成功成功返回由伺服器端返回的XML信息,失敗返回false
*/
function write_file( $string )
{
$fp = fopen( "xml.log","w" );
fprintf( $fp, "%s\n", $string );
fclose( $fp );
}
function rpc_client_call($host, $port, $rpc_server, $request) {

//打開指定的伺服器端
$fp = fsockopen($host, $port);
//echo $fp."<br>";
//構造需要進行通信的XML-RPC伺服器端的查詢POST請求信息
$query = "POST $rpc_server HTTP/1.1\r\nUser_Agent: XML-RPC Client\r\nHost: ".$host."\r\nContent-Type: text/xml\r\nContent-Length: ".strlen($request)."\r\n\r\n".$request."\r\n";
//echo $query."<br>";

//把構造好的HTTP協議發送給伺服器,失敗返回false
if (!fputs($fp, $query, strlen($query)))
{
$errstr = "Write error";
echo $errstr."<br>";
return false;
}

//獲取從伺服器端返回的所有信息,包括HTTP頭和XML信息
$contents = "";
while (!feof($fp))
{
$contents .= fgets($fp);
}

//關閉連接資源後返回獲取的內容
fclose($fp);
return $contents;
}

//構造連接RPC伺服器端的信息
$host = "localhost";
$port = 80;
$rpc_server = "/phpserv.php";//注意 這里一定要有/,切忌。

//把需要發送的XML請求進行編碼成XML,需要調用的方法是rpc_server,參數是get
$request = xmlrpc_encode_request("rpc_server", array( "get", "helloworld"));
//echo $request;
//調用rpc_client_call函數把所有請求發送給XML-RPC伺服器端後獲取信息
$response = rpc_client_call($host, $port, $rpc_server, $request);
write_file ( $response );
//echo "aaa".$response."xxx"."<br>";
//分析從伺服器端返回的XML,去掉HTTP頭信息,並且把XML轉為PHP能識別的字元串
$split = "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>";
//echo "split=".$split."<br>";
$xml = explode($split, $response);
$xml = $split . array_pop($xml);
$response = xmlrpc_decode($xml);

/*輸出從RPC伺服器端獲取的信息*/
print_r($response);

?>

例子都有了,其他的就是照搬咯。

❹ PHP調用.NET的WebService 簡單實例

創建一個C#的web
service,這個就不多說了,我用vs2008的wizard創建了一個最簡單的,讓它運行在:http://localhost/webservice1/service1.asmx
其中有個web
method像這樣的:
復制代碼
代碼如下:
[WebMethod]
public
string
HelloWorld()
{

return
"Hello
World";
}
ok,一切就緒。在某php文件中如下寫法:
php5本身就支持SOAP調用Web
Service:
<?php
//get
localization
strings
from
C#
webservice
$client
=
new
SoapClient('http://localhost/webservice1/Localization.asmx?wsdl');
echo
"Call
web
service
method
from
C#
WebService:\n";
$result
=
$client->GetLocalizationResource();
if(!is_soap_fault($result))
{
echo
"return:\n",
$result->GetLocalizationResourceResult;
}
else
{
echo
"soap
call
fault";
}
?>
這樣就OK了,會繼續介紹SOAP
以上所述就是本文的全部內容了,希望大家能夠喜歡。
請您花一點時間將文章分享給您的朋友或者留下評論。我們將會由衷感謝您的支持!

❺ php如何調用webservice介面

我要調用的這個webservices需要一個密碼驗證,XML如下:

<soap:Header>
<SecuritySoapHeaderxmlns="">
<Password>string</Password>
</SecuritySoapHeader>
</soap:Header>
<soap:Body>
<GetTradeByIDxmlns="

<ID>string</ID>
</GetTradeByID>
</soap:Body>

❻ php連接webservice每次都要new SoapClient()嗎

最近工作中需要用php調用web service介面,對php不熟,上網搜搜,發現關於用php調用web service的文章也不多,不少還是php4里用nusoap這個模塊調用的方法,其實php5里已經包含了處理soap的模塊,但是資料太少了,上php官網上查幫助,寫的不是很容易理解,經過多次實踐,終於搞清楚了,php調用web service還是非常簡單的。下面用一個例子說明:
web service服務是查詢QQ用戶是否在線
使用php5開發客戶端:
<?php
try {
//$client = new SoapClient("HelloService.wsdl",array('encoding'=>'UTF-8'));
$client = new SoapClient("webservices/qqOnlineWebService.asmx?wsdl");
var_mp($client->__getFunctions());
print("");
var_mp($client->__getTypes());
print("");

class qqCheckOnline{
var $qqCode = "10000";
};
$arrPara = array(new qqCheckOnline);

$arrResult = $client->__Call("qqCheckOnline",$arrPara);//$client->qqCheckOnline($arrPara);

echo $arrResult->qqCheckOnlineResult . "";
} catch (SOAPFault $e) {
print $e;
}
?>
代碼確實很簡單吧,創建SoapClient對象時,可以使用保存在本地WSDL文件,也可以使用遠程的地址,後面的array數組里可以帶上很多的參數,具體參數可以查php的SoapClient幫助,這里帶的是字元集編碼,如果調用方法的參數里有中文,一定要指定字元集編碼,否則會出錯。
調用web service前可以先調用SoapClient的__geunctions()和__getTypes()方法看一下你要調用的web service暴露的方法,參數和數據類型,需要注意的是傳入的參數名一定要和soapclient裡面定義的一致,否則參數是傳不過去的。
需要使用SoapClient的__soapCall()或__call()方法,具體使用方法可以查php的幫助文檔。如果參數要求是一個結構體,請用類代替,如上面的代碼。
另外發現個問題,如果web service方法返回的是xml格式的字元串,php接收到以後會自己把數據內容解析出來,而不是xml字元串.

❼ php 調用webservice介面數據

函數是不可以調用的

你把這個xml當成字元串,然後在用php xml處理一下就可以使用了

❽ php怎麼調用java的https方式的webservice介面

webservice 發展了好久了,有好多種客戶端部署調用方式 ,流程大致是先創建服務,再調用。
下面的代碼是創建一個簡單的Webservice服務.
server.php
<?php

require_once "lib/nusoap.php";
function webserver() {
return "This is a Webservice Server";
}
$soap = new soap_server;
$soap->register('webserver');
$soap->service($HTTP_RAW_POST_DATA);
?>

上面的代碼就創建了一個Webservice服務程序,接下來創建調用Webservice介面的程序:
<?php
require_once "soap/lib/nusoap.php";

$web_url = "127.0.0.1";
$client = new soapclient($web_url."/server.php");

$param = array();
$ret = $client->call('webserver', $param, $web_url, $web_url);

echo $ret;

?>
基本上流程就是這樣,當然,實際應用上能寫出很復雜的東西,這個你可以找找相關資料學習一下,上面的php調用Webservice程序是通用的,適合於PHP調用其它ASP.NET及Java等各類語言的Webservice介面。一些技術博文里有很詳細的介紹和學習。

❾ php怎樣通過SoapClient調用webservice介面

<?php
header ( "Content-Type: text/html; charset=gb2312" );
/*
* 指定WebService路徑並初始化一個WebService客戶端
*/
$ws = "http://www.webservicex.net/globalweather.asmx?wsdl";//webservice服務的地址
$client = new SoapClient ($ws);
/*
* 獲取SoapClient對象引用的服務所提供的所有方法
*/
echo ("SOAP伺服器提供的開放函數:");
echo ('<pre>');
var_mp ( $client->__getFunctions () );//獲取伺服器上提供的方法
echo ('</pre>');
echo ("SOAP伺服器提供的Type:");
echo ('<pre>');
var_mp ( $client->__getTypes () );//獲取伺服器上數據類型
echo ('</pre>');
echo ("執行GetGUIDNode的結果:");
$result=$client->getWeather(array('CityName'=>'zhengzhou','CountryName'=>'china'));//查詢中國鄭州的天氣,返回的是一個結構體
echo $result->GetWeatherResult;//顯示結果
?>

❿ PHPCMS 和PHPWIND 製作的網站如何使用PHP編寫WebService服務端

建議看看他們的phpcms和phpwind的開發指南
他們都有開放這些,了解他們系統原理和介面就能自己來做二次開發

閱讀全文

與phpwebservice介面開發相關的資料

熱點內容
銀河v10驅動重編譯 瀏覽:889
電腦上文件夾右擊就會崩潰 瀏覽:689
右美維持演算法 瀏覽:938
php基礎編程教程pdf 瀏覽:219
穿越之命令與征服將軍 瀏覽:351
android廣播重復 瀏覽:832
像阿里雲一樣的伺服器 瀏覽:318
水冷空調有壓縮機嗎 瀏覽:478
訪問日本伺服器可以做什麼 瀏覽:432
bytejava詳解 瀏覽:448
androidjava7 瀏覽:385
伺服器在山洞裡為什麼還有油 瀏覽:886
天天基金app在哪裡下載 瀏覽:974
伺服器軟路由怎麼做 瀏覽:292
冰箱壓縮機出口 瀏覽:228
OPT最佳頁面置換演算法 瀏覽:644
網盤忘記解壓碼怎麼辦 瀏覽:853
文件加密看不到裡面的內容 瀏覽:654
程序員腦子里都想什麼 瀏覽:434
oppp手機信任app在哪裡設置 瀏覽:189