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桌面中心(四) 数据显示
Mar 11 PHP
使用PHP的日期与时间函数技巧
Apr 24 PHP
用PHP调用Oracle存储过程的方法
Sep 12 PHP
phpinfo 系统查看参数函数代码
Jun 05 PHP
php smarty模版引擎中的缓存应用
Dec 11 PHP
header导出Excel应用示例
Jan 24 PHP
thinkphp普通查询与表达式查询实例分析
Nov 24 PHP
php微信公众平台开发类实例
Apr 01 PHP
PHP传值到不同页面的三种常见方式及php和html之间传值问题
Nov 19 PHP
WordPress中用于更新伪静态规则的PHP代码实例讲解
Dec 18 PHP
通过PHP自带的服务器来查看正则匹配结果的方法
Dec 24 PHP
Laravel框架中缓存的使用方法分析
Sep 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
解析PayPal支付接口的PHP开发方式
2010/11/28 PHP
IIS+fastcgi下PHP运行超时问题的解决办法详解
2013/06/20 PHP
php中in_array函数用法分析
2014/11/15 PHP
thinkPHP内置字符串截取函数用法详解
2016/11/15 PHP
PHP设计模式概论【概念、分类、原则等】
2020/05/01 PHP
JavaScript 通过模式匹配实现重载
2010/08/12 Javascript
超越Jquery_01_isPlainObject分析与重构
2010/10/20 Javascript
利用jQuery操作对象数组的实现代码
2011/04/27 Javascript
html超链接打开窗口大小的方法
2013/03/05 Javascript
深入解析contentWindow, contentDocument
2013/07/04 Javascript
微信小程序 Page()函数详解
2016/10/17 Javascript
jq给页面添加覆盖层遮罩的实例
2017/02/16 Javascript
jquery实现超简单的瀑布流布局【推荐】
2017/03/08 Javascript
jQuery 控制文本框自动缩小字体填充
2017/06/16 jQuery
解决Vue编译时写在style中的路径问题
2017/09/21 Javascript
EasyUI框架 使用Ajax提交注册信息的实现代码
2017/09/27 Javascript
React操作真实DOM实现动态吸底部的示例
2017/10/23 Javascript
Vue2.0 slot分发内容与props验证的方法
2017/12/12 Javascript
解决VUE框架 导致绑定事件的阻止冒泡失效问题
2018/02/24 Javascript
简化vuex的状态管理方案的方法
2018/06/02 Javascript
关于vue编译版本引入的问题的解决
2018/09/17 Javascript
详解JS浏览器事件循环机制
2019/03/27 Javascript
微信小程序中悬浮窗功能的实现代码
2019/08/02 Javascript
使用JS实现动态时钟
2020/03/12 Javascript
通过实例了解JS执行上下文运行原理
2020/06/17 Javascript
python 用for循环实现1~n求和的实例
2019/02/01 Python
python实现批量处理将图片粘贴到另一张图片上并保存
2019/12/12 Python
Python生成个性签名图片获取GUI过程解析
2019/12/16 Python
python通过安装itchat包实现微信自动回复收到的春节祝福
2020/01/19 Python
俄罗斯宠物用品网上商店:ZooMag
2019/12/12 全球购物
《春雨》教学反思
2014/04/24 职场文书
领导班子整改措施
2014/10/24 职场文书
学校法制宣传日活动总结
2014/11/01 职场文书
行风评议整改报告
2014/11/06 职场文书
《艾尔登法环》1.03.3补丁上线 碎星伤害调整
2022/04/07 其他游戏
Go语言 详解net的tcp服务
2022/04/14 Golang