⑴ php 調用webservice介面數據
函數是不可以調用的
你把這個xml當成字元串,然後在用php xml處理一下就可以使用了
⑵ PHP寫的webservice部署到linux上調用不到的問題
$c = new SoapClient('你的介面地址', array('encoding' => 'gbk'));//如果不需要轉碼可以把轉碼那部分去掉。
$r = $c->PassAuthenticate(trim(username.Text), trim(userpwd.Text));//你這里的參數我不知道是什麼,你就按你的實際內容傳吧。
⑶ php如何調用webservice介面
我要調用的這個webservices需要一個密碼驗證,XML如下:
<soap:Header>
<SecuritySoapHeaderxmlns="">
<Password>string</Password>
</SecuritySoapHeader>
</soap:Header>
<soap:Body>
<GetTradeByIDxmlns="
<ID>string</ID>
</GetTradeByID>
</soap:Body>
⑷ PHP如何調用webservice
最近工作中需要用php調用webservice介面,對php不熟,上網搜搜,發現關於用php調用webservice的文章也不多,不少還是php4里用nusoap這個模塊調用的方法,其實php5里已經包含了處理soap的模塊,但是資料太少了,上php官網上查幫助,寫的不是很容易理解,經過多次實踐,終於搞清楚了,php調用webservice還是非常簡單的。下面用一個例子說明:
webservice服務是查詢QQ用戶是否在線
使用php5開發客戶端:
<?php
try{
//$client=newSoapClient("HelloService.wsdl",array('encoding'=>'UTF-8'));
$client=newSoapClient("webservices/qqOnlineWebService.asmx?wsdl");
var_mp($client->__getFunctions());
print("<br/>");
var_mp($client->__getTypes());
print("<br/>");
classqqCheckOnline{
var$qqCode="10000";
};
$arrPara=array(newqqCheckOnline);
$arrResult=$client->__Call("qqCheckOnline",$arrPara);//$client->qqCheckOnline($arrPara);
echo$arrResult->qqCheckOnlineResult."<br/>";
}catch(SOAPFault$e){
print$e;
}
?>
代碼確實很簡單吧,創建SoapClient對象時,可以使用保存在本地WSDL文件,也可以使用遠程的地址,後面的array數組里可以帶上很多的參數,具體參數可以查php的SoapClient幫助,這里帶的是字元集編碼,如果調用方法的參數里有中文,一定要指定字元集編碼,否則會出錯。
調用webservice前可以先調用SoapClient的__geunctions()和__getTypes()方法看一下你要調用的webservice暴露的方法,參數和數據類型,需要注意的是傳入的參數名一定要和soapclient裡面定義的一致,否則參數是傳不過去的。
需要使用SoapClient的__soapCall()或__call()方法,具體使用方法可以查php的幫助文檔。如果參數要求是一個結構體,請用類代替,如上面的代碼。
另外發現個問題,如果webservice方法返回的是xml格式的字元串,php接收到以後會自己把數據內容解析出來,而不是xml字元串.
⑸ php 調用webservice 返回的值用var_mp()返回就是下面的值,想取到<Balance>366</Balance>的值,謝謝
返回的是一個對象 取出out里的東西 然後 用xml解析出來這個東西 然後 找到ballance節點 的值即可
⑹ webservice介面怎麼寫 php
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 = "";
$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 webservice soap問題
試試在前面加上這兩行
ini_set('soap.wsdl_cache_enabled',0);
ini_set('soap.wsdl_cache_ttl',0);
⑻ linux中安裝php擴展的問題
如果php安裝沒問題的話,我記得安裝這些擴展要用到 phpize 吧
在memcache安裝文件目錄
/usr/bin/phpize 你改變目錄就改變
./configure --with-php-config=/usr/bin/php-config
安裝
如果文件位置有變動,你自己慢慢找你的安裝目錄吧
⑼ PHP怎麼獲取webservice返回的值
你這個樣子看起來是對象, 不是數組哦。
假設返回的結果在變數$o中,那麼:
$o->GetUserInfoResult->CreateTime 的值就是 2010-11-08;
$o->GetUserInfoResult->Identity 的值就是1;
$o->GetUserInfoResult->Point 的值就是 39.218211,117.314231
獲得$Point1、$Point2的方法可以是:
list($Point1,$Point2)=explode(',', $o->GetUserInfoResult->Point);
⑽ php webservice 調用錯誤出現 Fault occurred while processing
本地調用介面的時候的參數中有很多參數是空的,將這些參數替換為空字元串 ""再試試,說不準就好了。
對於我這個方法的問題追蹤最終的產生原因 ,是webservice服務端的處理中沒有空從參數進行處理,也就是說這是服務端的問題,客戶端可以使用替換null為空字元串的方法進行解決。