C#使用PHP服务端的Web Service通信实例


Posted in PHP onApril 08, 2014

注:本例中构建Web Service采用SOAP方式,通过php插件NuSoap来搭建SOAP服务器。

<?
require_once("lib/nusoap.php"); //调用NuSoap
$server = new soap_server(); //创建soap服务端
$server->configureWSDL("login_service"); //配置WSDL
$namespace = "http://www.abcd9.com"; 
$server->wsdl->schemaTargetNamespace = $namespace; //设置wsdl命名空间为http://www.abcd9.com
$server->register( // 注册Web服务
        'login_verifiy', //定义名称 
        array('name'=>'xsd:string','pw'=>'xsd:string'),  //接受参数
        array('return'=>'xsd:string'),  //返回
        $namespace, //命名空间
        false, // soapaction:默认
        'rpc', // 类型: rpc or document
        'encoded', // 参数:encoded(编码)或 literal(文字)
        'A web method of login' //描述
);        
$POST_DATA = isset($GLOBALS['HTTP_RAW_POST_DATA'])? $GLOBALS['HTTP_RAW_POST_DATA'] : '';                
$server->service($POST_DATA); //将提交的数据传递给soap服务
function login_verifiy($user,$pw) { //服务执行内容,本示例中为显示输入的帐号密码
 return 'user:'.$user.' password:'.$pw);
}
?>

 

C#客户端调用:

[DllImport("kernel32")] //调用api函数读ini文件。返回值为字符串缓冲区的长度
private static extern long GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);
private void Form1_Load(object sender, EventArgs e)
{
    StringBuilder temp = new StringBuilder(256);
    GetPrivateProfileString("system", "url", null, temp, 256, System.IO.Directory.GetCurrentDirectory()+"\\config.ini");  
    //通过读取config.ini配置文件(结构见附加内容)来获取webservice url
    Program.server_url = temp.ToString(); //Program.cs中的全局变量server_url用以储存webservice url
}
private void button1_Click(object sender, EventArgs e)
{
    WebReference.login_service l = new WebReference.login_service();
    string s=l.login_verifiy(username.Text, password.Text);
    MessageBox.Show(s);
}

附config.ini内容:
[system]
url=http://127.0.0.1:100/
PHP 相关文章推荐
一个可以删除字符串中HTML标记的PHP函数
Oct 09 PHP
php数组函数序列之ksort()对数组的元素键名进行升序排序,保持索引关系
Nov 02 PHP
用PHP实现浏览器点击下载TXT文档的方法详解
Jun 02 PHP
PHP文件大小格式化函数合集
Mar 10 PHP
Fatal error: session_start(): Failed to initialize storage module: files问题解决方法
May 04 PHP
JavaScript实现滚动栏效果的方法
Apr 27 PHP
PHP基于简单递归函数求一个数阶乘的方法示例
Apr 26 PHP
php递归函数怎么用才有效
Feb 24 PHP
tp框架(thinkPHP)实现三次登陆密码错误之后锁定账号功能示例
May 24 PHP
实例解析php的数据类型
Oct 24 PHP
PDO::exec讲解
Jan 28 PHP
PHP正则之正向预查与反向预查讲解与实例
Apr 06 PHP
php实现水仙花数的4个示例分享
Apr 08 #PHP
php命令行使用方法和命令行参数说明
Apr 08 #PHP
php实现httpclient类示例
Apr 08 #PHP
php使用json_encode对变量json编码
Apr 07 #PHP
php使用正则表达式提取字符串中尖括号、小括号、中括号、大括号中的字符串
Apr 05 #PHP
PHP中的Memcache详解
Apr 05 #PHP
PHP中使用memcache存储session的三种配置方法
Apr 05 #PHP
You might like
ThinkPHP令牌验证实例
2014/06/18 PHP
PHP addslashes()函数讲解
2019/02/03 PHP
IE 缓存策略的BUG的解决方法
2007/07/21 Javascript
基于jquery的横向滚动条(滑动条)
2011/02/24 Javascript
用JavaScript修改CSS属性的代码
2013/05/06 Javascript
JavaScript实现的简单拖拽效果
2015/06/01 Javascript
JavaScript中日期函数的相关操作知识
2016/08/03 Javascript
原生JS实现在线问卷调查投票特效
2017/01/03 Javascript
vue项目中使用ueditor的实例讲解
2018/03/05 Javascript
js实现各浏览器全屏代码实例
2018/07/03 Javascript
jquery.param()实现数组或对象的序列化方法
2018/10/08 jQuery
Vue 2.0双向绑定原理的实现方法
2019/10/23 Javascript
Node.js 中判断一个文件是否存在
2020/08/24 Javascript
闭包在python中的应用之translate和maketrans用法详解
2014/08/27 Python
python通过socket实现多个连接并实现ssh功能详解
2017/11/08 Python
Python使用cx_Oracle模块操作Oracle数据库详解
2018/05/07 Python
python ftp 按目录结构上传下载的实现代码
2018/09/12 Python
Python简单处理坐标排序问题示例
2019/07/11 Python
Django自带日志 settings.py文件配置方法
2019/08/30 Python
python爬虫添加请求头代码实例
2019/12/28 Python
django使用channels实现通信的示例
2020/10/19 Python
通过CSS3的object-fit来调整图片适配尺寸的技巧简介
2016/02/27 HTML / CSS
New Balance法国官方网站:购买鞋子和服装
2019/09/01 全球购物
生产部主管岗位职责
2014/01/06 职场文书
古汉语文学求职信范文
2014/03/16 职场文书
我的老师教学反思
2014/05/01 职场文书
电子商务专业自荐信
2014/06/02 职场文书
贫困证明模板(3篇)
2014/09/16 职场文书
学生自我鉴定格式及范文
2014/09/16 职场文书
年终工作总结范文2014
2014/11/27 职场文书
2015年上半年物业工作总结
2015/03/30 职场文书
2015中学学校工作总结
2015/07/20 职场文书
党组织关系的介绍信模板
2019/06/21 职场文书
Python实现PIL图像处理库绘制国际象棋棋盘
2021/07/16 Python
mysql函数全面总结
2021/11/11 MySQL
教你在 Java 中实现 Dijkstra 最短路算法的方法
2022/04/08 Java/Android