欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

PHP SOAP服务器端C#客户端

程序员文章站 2022-03-06 20:51:16
最近写了个php的soap服务器 端,实现了php客户端的调用,却实现不了客户端的调用,看完了手册找了n久也没实现其访问 ,最后试用了一下nusoap sf.net上的一...

最近写了个php的soap服务器 端,实现了php客户端的调用,却实现不了客户端的调用,看完了手册找了n久也没实现其访问 ,最后试用了一下nusoap
sf.net上的一个开源 项目,效果 很好,很eacy就实现了所需的功能
c#的web 服务 (服务器端)是非常容易实现的,c#客户端调用也很方便
php的web服务器端 一般要生成一个.wsdl的文件 ,.wsdl是一个xml文件描述提供的服务
下面来看看我的第一个php web服务
<?php
/**
* processsimpletype method
* @param string $who name of the person we'll say hello to
* @return string $hellotext the hello   string
*/
function processsimpletype($who) {
    return "hello $who, 欢迎访问  ";";
}
?>
记得要先下载 nusoap

<?php
require_once("lib/nusoap/nusoap.php");
$namespace = "";
// create a new soap server
$server = new soap_server();
// configure our wsdl
$server->configurewsdl("simpleservice");
// set our namespace
$server->wsdl->schematargetnamespace = $namespace;
// register our webmethod
$server->register(
// method name:
'processsimpletype',
// parameter list:
array('name'=>'xsd:string'),
// return value(s):
array('return'=>'xsd:string'),
// namespace:
$namespace,
// soapaction: (use default)
false,
// style. rpc or document
'rpc',
// use: encoded or literal
'encoded',
// description: documentation for the method
'a simple hello world web method');
 
// get our posted data if the service is being consumed
// otherwise leave this data blank.
$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();
?>
写完之后就可以使用了
打开.net,添加引用


下一步点击wsdl ,可以看到所提供的服务,如下图


 PHP SOAP服务器端C#客户端

 

 PHP SOAP服务器端C#客户端

PHP SOAP服务器端C#客户端

c#调用代码


private void button1_click(object sender, eventargs e) {
simpleservice s = new simpleservice();
string s = svc.processsimpletype("400电话 vip用户");
messagebox.show(s);
}
结果