⑴ 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为空字符串的方法进行解决。