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 修复未正常关闭的HTML标签实现代码(支持嵌套和就近闭合)
Jun 07 PHP
php中url传递中文字符,特殊危险字符的解决方法
Aug 17 PHP
php导出csv格式数据并将数字转换成文本的思路以及代码分享
Jun 05 PHP
PHP模块memcached使用指南
Dec 08 PHP
经典PHP加密解密函数Authcode()修复版代码
Apr 05 PHP
php使用Jpgraph绘制柱形图的方法
Jun 10 PHP
PHP模板引擎Smarty自定义变量调解器用法
Apr 11 PHP
PHP实现的自定义数组排序函数与排序类示例
Nov 18 PHP
php实现XML和数组的相互转化功能示例
Feb 08 PHP
php实现基于PDO的预处理示例
Mar 28 PHP
laravel学习笔记之模型事件的几种用法示例
Aug 15 PHP
tp5使用layui实现多个图片上传(带附件选择)的方法实例
Nov 17 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模拟HTTP认证
2006/10/09 PHP
php_screw 1.5:php加密: 安装与使用详解
2013/06/20 PHP
php使用include 和require引入文件的区别
2017/02/16 PHP
php经典趣味算法实例代码
2020/01/21 PHP
jQuery学习笔记 更改jQuery对象
2012/09/19 Javascript
将input file的选择的文件清空的两种解决方案
2013/10/21 Javascript
jquery获取url参数及url加参数的方法
2015/10/26 Javascript
详解vue-cli中的ESlint配置文件eslintrc.js
2017/09/25 Javascript
vue-resource + json-server模拟数据的方法
2017/11/02 Javascript
vue中el-upload上传图片到七牛的示例代码
2018/10/19 Javascript
AJAX在JQuery中的应用详解
2019/01/30 jQuery
微信小程序授权登录解决方案的代码实例(含未通过授权解决方案)
2019/05/10 Javascript
element-ui中Table表格省市区合并单元格的方法实现
2019/08/07 Javascript
python关键字and和or用法实例
2015/05/28 Python
python数据类型_字符串常用操作(详解)
2017/05/30 Python
Python二叉树定义与遍历方法实例分析
2018/05/25 Python
python实现梯度下降算法
2020/03/24 Python
对python中assert、isinstance的用法详解
2019/11/27 Python
使用pyhon绘图比较两个手机屏幕大小(实例代码)
2020/01/03 Python
python GUI库图形界面开发之PyQt5访问系统剪切板QClipboard类详细使用方法与实例
2020/02/27 Python
python如何建立全零数组
2020/07/19 Python
pandas针对excel处理的实现
2021/01/15 Python
html5 初试 indexedDB(推荐)
2016/07/21 HTML / CSS
西班牙在线药店:DosFarma
2020/03/28 全球购物
工商学院毕业生自荐信
2013/11/12 职场文书
历史专业个人求职信范文
2013/12/07 职场文书
军训学生自我鉴定
2014/02/12 职场文书
中国文明网向国旗敬礼活动精彩寄语2014
2014/09/27 职场文书
支部书记四风问题对照检查材料
2014/10/04 职场文书
2015年业务工作总结范文
2015/04/10 职场文书
2015年高校辅导员工作总结
2015/04/20 职场文书
公文写作:教你写“建议书”
2019/05/07 职场文书
用Python远程登陆服务器的步骤
2021/04/16 Python
详解前端任务构建利器Gulp.js使用指南
2021/04/30 Javascript
Python中re模块的元字符使用小结
2022/04/07 Python
Java实现带图形界面的聊天程序
2022/06/10 Java/Android