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 抓取新浪读书频道的小说并生成txt电子书的代码
Dec 18 PHP
php urlencode()与urldecode()函数字符编码原理详解
Dec 06 PHP
php 无法加载mcrypt.dll的解决办法
Apr 03 PHP
解决PhpMyAdmin中导入2M以上大文件限制的方法分享
Jun 06 PHP
PHP aes (ecb)解密后乱码问题
Jun 22 PHP
利用PHP如何写APP接口详解
Aug 23 PHP
php根据年月获取当月天数及日期数组的方法
Nov 30 PHP
利用laravel+ajax实现文件上传功能方法示例
Aug 13 PHP
基于php数组中的索引数组和关联数组详解
Mar 12 PHP
PHP自定义函数实现assign()数组分配到模板及extract()变量分配到模板功能示例
May 23 PHP
PHP回调函数简单用法示例
May 08 PHP
浅谈thinkphp的nginx配置,以及重写隐藏index.php入口文件方法
Oct 12 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
PHP的Yii框架中创建视图和渲染视图的方法详解
2016/03/29 PHP
PHP与Web页面的交互示例详解二
2020/08/04 PHP
强制设为首页代码
2006/06/19 Javascript
关于js日期转化为毫秒数“节省20%的效率和和节省9个字符“问题
2012/03/01 Javascript
JavaScript设计模式之策略模式实例
2014/10/10 Javascript
Javascript中apply、call、bind的巧妙使用
2016/08/18 Javascript
浅析Javascript的自动分号插入(ASI)机制
2016/09/29 Javascript
深入浅析javascript继承体系
2017/10/23 Javascript
Angular利用trackBy提升性能的方法
2018/01/26 Javascript
深入学习TypeScript 、React、 Redux和Ant-Design的最佳实践
2019/06/17 Javascript
详解elementui之el-image-viewer(图片查看器)
2019/08/30 Javascript
vue+element表格导出为Excel文件
2019/09/26 Javascript
JS实现简易留言板(节点操作)
2020/03/16 Javascript
[01:32]TI珍贵瞬间系列(一)
2020/08/26 DOTA
[01:32]完美世界DOTA2联赛10月29日精彩集锦
2020/10/30 DOTA
Python获取单个程序CPU使用情况趋势图
2015/03/10 Python
Python连接phoenix的方法示例
2017/09/29 Python
Python之Scrapy爬虫框架安装及简单使用详解
2017/12/22 Python
python3写爬取B站视频弹幕功能
2017/12/22 Python
Python 16进制与中文相互转换的实现方法
2018/07/09 Python
NumPy 数组使用大全
2019/04/25 Python
python实现超市管理系统(后台管理)
2019/10/25 Python
Python txt文件常用读写操作代码实例
2020/08/03 Python
HTML高亮关键字的实现代码
2018/10/22 HTML / CSS
html5中JavaScript removeChild 删除所有节点
2014/05/16 HTML / CSS
使用HTML5里的classList操作CSS类
2016/06/28 HTML / CSS
HTML5中form如何关闭自动完成功能的方法
2018/07/02 HTML / CSS
英国儿童图书网站:Scholastic
2017/03/26 全球购物
澳大利亚网上书店:QBD
2021/01/09 全球购物
中学教师实习自我鉴定
2013/09/28 职场文书
收银出纳员岗位职责
2014/02/23 职场文书
关于读书的演讲稿400字
2014/08/27 职场文书
七一讲话心得体会
2014/09/05 职场文书
2014年预算员工作总结
2014/12/05 职场文书
管理人员岗位职责
2015/02/14 职场文书
Spring实现内置监听器
2021/07/09 Java/Android