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 OPCode缓存 APC详细介绍
Oct 12 PHP
完美解决令人抓狂的zend studio 7代码提示(content Assist)速度慢的问题
Jun 20 PHP
PHP 循环删除无限分类子节点的实现代码
Jun 21 PHP
腾讯QQ微博API接口获取微博内容
Oct 30 PHP
PHP动态页生成静态页的3种常用方法
Nov 13 PHP
php继承中方法重载(覆盖)的应用场合
Feb 09 PHP
PHP安全下载文件的方法
Apr 07 PHP
PHP array_key_exists检查键名或索引是否存在于数组中的实现方法
Jun 13 PHP
Yii2下session跨域名共存的解决方案
Feb 04 PHP
thinkPHP5.1框架路由::get、post请求简单用法示例
May 06 PHP
Thinkphp5.0框架使用模型Model的获取器、修改器、软删除数据操作示例
Oct 11 PHP
PHP底层运行机制与工作原理详解
Jul 31 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
将RTF格式的文件转成HTML并在网页中显示的代码
2006/10/09 PHP
TP5框架实现签到功能的方法分析
2020/04/05 PHP
自动更新作用
2006/10/08 Javascript
JavaScript操作XML实例代码(获取新闻标题并分页,并分页)
2010/05/25 Javascript
javascript学习笔记(十二) RegExp类型介绍
2012/06/20 Javascript
js和jquery对dom节点的操作(创建/追加)
2013/04/21 Javascript
js 动态为textbox添加下拉框数据源的方法
2014/04/24 Javascript
对之前写的jquery分页做下升级
2014/06/19 Javascript
浅谈JS原生Ajax,GET和POST
2016/06/08 Javascript
Vue 2.X的状态管理vuex记录详解
2017/03/23 Javascript
Vue自定义图片懒加载指令v-lazyload详解
2020/12/31 Javascript
教你如何用node连接redis的示例代码
2018/07/12 Javascript
详解Nuxt.js部署及踩过的坑
2018/08/07 Javascript
微信小程序数据分析之自定义分析的实现
2018/08/17 Javascript
浅析vue插槽和作用域插槽的理解
2019/04/22 Javascript
layUI实现三级导航菜单效果
2019/07/26 Javascript
使用localStorage替代cookie做本地存储
2019/09/25 Javascript
TypeScript高级用法的知识点汇总
2019/12/17 Javascript
vue实现图片懒加载的方法分析
2020/02/05 Javascript
JS跨浏览器解析XML应用过程详解
2020/10/16 Javascript
Bootstrap FileInput实现图片上传功能
2021/01/28 Javascript
[02:17]快乐加倍!DOTA2食人魔魔法师至宝+迎霜节活动上线
2019/12/22 DOTA
怎样使用Python脚本日志功能
2016/08/14 Python
python微信公众号开发简单流程
2018/03/23 Python
Python 网络爬虫--关于简单的模拟登录实例讲解
2018/06/01 Python
Python3 关于pycharm自动导入包快捷设置的方法
2019/01/16 Python
Python安装第三方库攻略(pip和Anaconda)
2020/10/15 Python
让IE支持HTML5的方法
2012/12/11 HTML / CSS
七年级数学教学反思
2014/01/22 职场文书
房屋转让协议书范本
2014/04/11 职场文书
5.12护士节演讲稿
2014/04/30 职场文书
社区志愿者活动方案
2014/08/18 职场文书
有关骆驼祥子的读书笔记
2015/06/26 职场文书
高中班主任培训心得体会
2016/01/07 职场文书
Nginx中break与last的区别详析
2021/03/31 Servers
Java服务调用RestTemplate与HttpClient的使用详解
2022/06/21 Java/Android