免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5590 | 回复: 8
打印 上一主题 下一主题

搞php web service的兄弟进来看看,指点一下 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-11-13 10:25 |只看该作者 |倒序浏览
最近因为要和别人的系统整合,所以要用到webservice,我的是php做的,另一方是jsp做的。所以要用到web service来做。网上看了不少资料。一点点的在试。就碰到了问题
soap_client.php
<?
require('nusoap.php');

//要发送的变量
$myString="world";

//parameters must be passed as an array
//变量必须要转换成数组的形式
$parameters=array($myString);

//创建一个soapclient对象,参数是server的URL
$s=new soapclient('https://192.168.1.165/webservice/soap_server.php');

//调用远程方法,返回值存放在$result
//返回值为PHP的变量类型,如string, integer, array
$result=$s->call('echoString', $parameters);

//错误检测
if (!$err=$s->getError()) {
echo 'Result: '.$result; //success
} else {
echo 'Error: '.$err;
}

//调试,以下是SOAP请求(request)和回应(response)的报文,包括HTTP头
echo "<xmp>".$s->request."</xmp>";
echo "<xmp>".$s->response."</xmp>";
?>
soap_server.php
<?
require('nusoap.php');

//创建一个新的soap_server对象,并注册允许远程调用的方法
$s=new soap_server;
$s->register('echoString');
$s->register('echoArray');

/*
[文章中说: 缺少了注册这一步,任何PHP函数都将可以进行远程调用,这将是一个极大的安全隐患。但是我尝试过注册是必须的。而且只有将结果return的函数才能直接声明为远程方法,比如echo()就不行,而strtolower()就可以。]
*/

function echoString($inputString) {
//类性检查
if(is_string($inputString)) {
return "Hello, ".$inputString;
} else {
//soap_fault类用于产生错误信息
return new soap_fault('client', '', 'The parameter to this service must be a string.');
//soap_fault(faultcode, faultactor, faultstring, faultdetail);
//上面是错误处理类的构造函数的格式
//faultcode 必须值。可以设置为client或server,来表明错误发生在哪一端。
//faultactor 在NuSOAP中尚未实现。
//faultstring 错误信息。
//faultdetail 详细错误信息。你可以使用XML标记。

//除了构造函数外,soap_fault类还有一个serialize()方法
//它将错误信息序列化,然后返回一个完整的SOAP报文,范例:
/*
$fault = new soap_fault('client', '', 'The inputString parameter must not be empty');
echo $fault->serialize();
*/
}
}

//演示数组类型的使用
function echoArray($inputString) {
return $inputString[0]."+".$inputString[1];

}

//最后一步是把所有的收到的post数据都传递给SOAP server的service方法。它将处理请求,并调用相应的函数。
$s->service($HTTP_RAW_POST_DATA);
?>
我 运行以后错误是:Error: CURL Extension, or OpenSSL extension w/ PHP version >= 4.3 is required for HTTPS<xmp></xmp><xmp></xmp> 可我的版本已经是4.3.9了

[ 本帖最后由 xiangcomein 于 2006-11-13 10:27 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2006-11-13 10:34 |只看该作者

各位高手都进来指点一下

各位高手都进来指点一下

论坛徽章:
0
3 [报告]
发表于 2006-11-13 11:12 |只看该作者
只过过XML交换数据

论坛徽章:
0
4 [报告]
发表于 2006-11-13 12:36 |只看该作者

也就是php和jsp两个系统整合,用web service ,有人做过吗?

也就是php和jsp两个系统整合,用web service ,有人做过吗?

论坛徽章:
0
5 [报告]
发表于 2006-11-13 15:16 |只看该作者
怎么就没有人来指点一下呢,各位老大

论坛徽章:
0
6 [报告]
发表于 2006-11-13 15:37 |只看该作者
运行以后错误是:Error: CURL Extension, or OpenSSL extension w/ PHP version >= 4.3 is required for HTTPS<xmp></xmp><xmp></xmp> 可我的版本已经是4.3.9了

php.ini默认不开放curl,,需要自己去开

论坛徽章:
0
7 [报告]
发表于 2006-11-13 16:38 |只看该作者
原帖由 james.liu 于 2006-11-13 15:37 发表
运行以后错误是:Error: CURL Extension, or OpenSSL extension w/ PHP version >= 4.3 is required for HTTPS<xmp></xmp><xmp></xmp> 可我的版本已经是4.3.9了

php.ini默认不开放curl,,需要自己 ...
那也不对啊,我访问自己的php系统都是https://地址 这样访问的呢

论坛徽章:
0
8 [报告]
发表于 2006-11-13 21:14 |只看该作者
原帖由 xiangcomein 于 2006-11-13 16:38 发表
那也不对啊,我访问自己的php系统都是https://地址 这样访问的呢



你先知道curl是什么,你什么地方用到了,再说上面的话。

论坛徽章:
0
9 [报告]
发表于 2006-11-14 10:00 |只看该作者
Web Service 开发有用的PHP扩展程序是CURL(Client URL Library)。CURL允许你通过不同的协议,如HTTP,
HTTPS, FTP, telnet, LDAP来通讯,其中的HTTPS对Web Services与服务器进行安全连接尤其有用.若提供SSL支持则是必须安装curl.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP