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将向Java靠拢
Oct 09 PHP
wordpress自定义url参数实现路由功能的代码示例
Nov 28 PHP
php判断正常访问和外部访问的示例
Feb 10 PHP
使用GDB调试PHP代码,解决PHP代码死循环问题
Mar 02 PHP
php判断表是否存在的方法
Jun 18 PHP
php生成PDF格式文件并且加密
Jun 22 PHP
php+html5+ajax实现上传图片的方法
May 14 PHP
php常用字符函数实例小结
Dec 29 PHP
PHP实现的多维数组排序算法分析
Feb 10 PHP
网站被恶意镜像怎么办 php一段代码轻松搞定(全面版)
Oct 23 PHP
PHP+redis实现的限制抢购防止商品超发功能详解
Sep 19 PHP
laravel框架分组控制器和分组路由实现方法示例
Jan 25 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
syphon 虹吸式咖啡冲泡冲煮倒水的得与失
2021/03/03 冲泡冲煮
十天学会php之第七天
2006/10/09 PHP
php基础知识:类与对象(3) 构造函数和析构函数
2006/12/13 PHP
PHP filter_var() 函数 Filter 函数
2012/04/25 PHP
PHP高级编程实例:编写守护进程
2014/09/02 PHP
WordPress中is_singular()函数简介
2015/02/05 PHP
php实现Session存储到Redis
2015/11/11 PHP
php封装一个异常的处理类
2017/06/08 PHP
PHP+ajax实现获取新闻数据简单示例
2018/05/08 PHP
laravel框架实现去掉URL中index.php的方法
2019/10/12 PHP
在Laravel中使用MongoDB的方法示例
2019/11/11 PHP
jquery实现html页面 div 假分页有原理有代码
2014/09/06 Javascript
javascript将数字转换整数金额大写的方法
2015/01/27 Javascript
JavaScript实现非常简单实用的下拉菜单效果
2015/08/27 Javascript
全面介绍javascript实用技巧及单竖杠
2016/07/18 Javascript
VueJs与ReactJS和AngularJS的异同点
2016/12/12 Javascript
JavaScript的for循环中嵌套一个点击事件的问题解决
2017/03/03 Javascript
vue数据控制视图源码解析
2018/03/28 Javascript
node.js读取Excel数据(下载图片)的方法示例
2018/08/02 Javascript
Vue实现用户自定义字段显示数据的方法
2018/08/28 Javascript
如何解决vue2.0下IE浏览器白屏问题
2018/09/13 Javascript
Vue 实例事件简单示例
2019/09/19 Javascript
jquery使用echarts实现有向图可视化功能示例
2019/11/25 jQuery
js+audio实现音乐播放器
2020/09/13 Javascript
Swift中的协议(protocol)学习教程
2016/07/08 Python
python 读取excel文件生成sql文件实例详解
2017/05/12 Python
Python实现利用最大公约数求三个正整数的最小公倍数示例
2017/09/30 Python
浅谈pycharm出现卡顿的解决方法
2018/12/03 Python
对python中词典的values值的修改或新增KEY详解
2019/01/20 Python
python自定义函数实现一个数的三次方计算方法
2019/01/20 Python
保加利亚服装和鞋类购物网站:Bibloo.bg
2020/11/08 全球购物
信息管理专业学生自荐信格式
2013/09/22 职场文书
运动会通讯稿100字
2014/01/31 职场文书
《美丽的田园》教学反思
2014/03/01 职场文书
iPhone13将有八大升级
2021/04/15 数码科技
动画电影《擅长捉弄人的高木同学》6月10日上映!
2022/03/20 日漫