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 相关文章推荐
php下保存远程图片到本地的办法
Aug 08 PHP
深入Nginx + PHP 缓存详解
Jul 11 PHP
php curl获取网页内容(IPV6下超时)的解决办法
Jul 16 PHP
thinkphp实现面包屑导航(当前位置)例子分享
May 10 PHP
PHP处理会话函数大总结
Aug 05 PHP
PHP中功能强大却很少使用的函数实例小结
Nov 10 PHP
利用php生成验证码
Feb 23 PHP
PHP实现中国公民身份证号码有效性验证示例代码
May 03 PHP
PHP实现的装箱算法示例
Jun 23 PHP
微信公众号实现扫码获取微信用户信息(网页授权)
Apr 09 PHP
thinkPHP5框架接口写法简单示例
Aug 05 PHP
PHP程序员简单的开展服务治理架构操作详解(三)
May 14 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
《魔兽争霸3:重制版》更新 多项视觉效果调整
2020/05/04 魔兽争霸
php学习之 认清变量的作用范围
2010/01/26 PHP
兼容性比较好的PHP生成缩略图的代码
2011/01/12 PHP
使用dump函数,给php加断点测试
2013/06/25 PHP
PHP has encountered a Stack overflow问题解决方法
2014/11/03 PHP
基于GD2图形库的PHP生成图片缩略图类代码分享
2015/02/08 PHP
php常用正则函数实例小结
2016/12/29 PHP
总结PHP代码规范、流程规范、git规范
2018/06/18 PHP
网页javascript精华代码集
2007/01/24 Javascript
js trim函数 去空格函数与正则集锦
2009/11/20 Javascript
jquery validator 插件增加日期比较方法
2010/02/21 Javascript
Jquery 点击按钮自动高亮实现原理及代码
2014/04/25 Javascript
jQuery实现下拉框左右移动(全部移动,已选移动)
2016/04/15 Javascript
浅谈Node.js 沙箱环境
2018/05/15 Javascript
解决vue router组件状态刷新消失的问题
2018/08/01 Javascript
详解如何探测小程序返回到webview页面
2019/05/14 Javascript
es6中class类静态方法,静态属性,实例属性,实例方法的理解与应用分析
2020/02/15 Javascript
[17:36]VG战队纪录片
2014/08/21 DOTA
本地文件上传到七牛云服务器示例(七牛云存储)
2014/01/11 Python
Python的面向对象思想分析
2015/01/14 Python
Python命令行参数解析模块getopt使用实例
2015/04/13 Python
Python实现中文数字转换为阿拉伯数字的方法示例
2017/05/26 Python
Python 异常处理的实例详解
2017/09/11 Python
Python Json序列化与反序列化的示例
2018/01/31 Python
python利用多种方式来统计词频(单词个数)
2019/05/27 Python
python文件及目录操作代码汇总
2020/07/08 Python
使用html2canvas实现浏览器截图的示例代码
2018/01/26 HTML / CSS
印度尼西亚在线时尚购物网站:ZALORA印尼
2016/08/02 全球购物
阿迪达斯英国官方网站:adidas英国
2019/08/13 全球购物
婚礼证婚人证婚词
2014/01/13 职场文书
护士求职自荐信范文
2014/03/19 职场文书
管理提升方案
2014/06/04 职场文书
银行纠风工作实施方案
2014/06/08 职场文书
Python 机器学习工具包SKlearn的安装与使用
2021/05/14 Python
React更新渲染原理深入分析
2022/12/24 Javascript
前端框架ECharts dataset对数据可视化的高级管理
2022/12/24 Javascript