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防攻击代码升级版
Dec 29 PHP
如何用php获取程序执行的时间
Jun 09 PHP
php5.5新数组函数array_column使用
Jul 08 PHP
PHP入门经历和学习过程分享
Apr 11 PHP
浅析PHP编程中10个最常见的错误
Aug 08 PHP
php获取数组元素中头一个数组元素值的实现方法
Dec 20 PHP
php自定义错误处理用法实例
Mar 20 PHP
php结合curl实现多线程抓取
Jul 09 PHP
Zend Framework教程之动作的基类Zend_Controller_Action详解
Mar 07 PHP
PHP中ajax无刷新上传图片与图片下载功能
Feb 21 PHP
基于PHP的加载类操作以及其他两种魔术方法的应用实例
Aug 28 PHP
php通过各种函数判断0和空
Jul 04 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 变量定义方法
2009/06/14 PHP
PHP读书笔记_运算符详解
2016/07/01 PHP
php微信开发之谷歌测距
2018/06/14 PHP
比较简单的一个符合web标准的JS调用flash方法
2007/11/29 Javascript
关于jQuery参考实例2.0 用jQuery选择元素
2013/04/07 Javascript
jquery中的$(document).ready()使用小结
2014/02/14 Javascript
如何实现chrome浏览器关闭页面时弹出“确定要离开此面吗?”
2015/03/05 Javascript
jQuery筛选数组之grep、each、inArray、map的用法及遍历json对象
2016/06/20 Javascript
老生常谈 js中this的指向
2016/06/30 Javascript
js实现按钮控制带有停顿效果的图片滚动
2016/08/30 Javascript
JS小数转换为整数的方法分析
2017/01/07 Javascript
react-router JS 控制路由跳转实例
2017/06/15 Javascript
Angular在模板驱动表单中自定义校验器的方法
2017/08/09 Javascript
JavaScript for循环 if判断语句(学习笔记)
2017/10/11 Javascript
js时间戳与日期格式之间相互转换
2017/12/11 Javascript
mongoose更新对象的两种方法示例比较
2017/12/19 Javascript
浅析vue中常见循环遍历指令的使用 v-for
2018/04/18 Javascript
100行代码实现一个vue分页组功能
2018/11/06 Javascript
uni-app如何页面传参数的几种方法总结
2020/04/28 Javascript
python中Switch/Case实现的示例代码
2017/11/09 Python
NetworkX之Prim算法(实例讲解)
2017/12/22 Python
python3+PyQt5实现自定义窗口部件Counters
2018/04/20 Python
tensorflow学习教程之文本分类详析
2018/08/07 Python
利用python实现短信和电话提醒功能的例子
2019/08/08 Python
Python3使用腾讯云文字识别(腾讯OCR)提取图片中的文字内容实例详解
2020/02/18 Python
Python使用pyyaml模块处理yaml数据
2020/04/14 Python
Spring http服务远程调用实现过程解析
2020/06/11 Python
OpenCV Python实现图像指定区域裁剪
2021/03/12 Python
python 动态渲染 mysql 配置文件的示例
2020/11/20 Python
英国领先的票务代理商之一:The Ticket Factory
2019/02/09 全球购物
俄罗斯奢侈品牌衣服、鞋子和配饰的在线商店:INTERMODA
2020/07/17 全球购物
在校生党员自我评价
2013/09/25 职场文书
幼儿园教师个人反思
2014/01/30 职场文书
大学生家政服务项目创业计划书
2014/01/30 职场文书
财务工作失误检讨书
2015/02/19 职场文书
python opencv检测直线 cv2.HoughLinesP的实现
2021/06/18 Python