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 相关文章推荐
Ajax+PHP 边学边练之四 表单
Nov 27 PHP
PHP Memcached应用实现代码
Feb 08 PHP
PHP 遍历文件实现代码
May 04 PHP
PHP转换文件夹下所有文件编码的实现代码
Jun 06 PHP
PHP命名空间(namespace)的使用基础及示例
Aug 18 PHP
PHP实现文件下载断点续传详解
Oct 15 PHP
PHP检测用户语言的方法
Jun 15 PHP
php+MySQL实现登录时验证登录名和密码是否正确
May 10 PHP
phpStudy中升级MySQL版本到5.7.17的方法步骤
Aug 03 PHP
CakePHP框架Model函数定义方法示例
Aug 04 PHP
thinkPHP框架实现的简单计算器示例
Dec 07 PHP
php 中的信号处理操作实例详解
Mar 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在线生成ico文件的代码
2007/10/09 PHP
php抽象类使用要点与注意事项分析
2015/02/09 PHP
php将文件夹打包成zip文件的简单实现方法
2016/10/04 PHP
thinkphp5.1框架容器与依赖注入实例分析
2019/07/23 PHP
javascript 基础篇3 类,回调函数,内置对象,事件处理
2012/03/14 Javascript
javascript实现漂亮的拖动层,窗口拖拽特效
2015/04/24 Javascript
JavaScript 七大技巧(一)
2015/12/13 Javascript
JS获取CSS样式(style/getComputedStyle/currentStyle)
2016/01/19 Javascript
Vue2仿淘宝实现省市区三级联动
2020/04/15 Javascript
AngularJS日期格式化常见操作实例分析
2018/05/17 Javascript
vue实现吸顶、锚点和滚动高亮按钮效果
2019/10/21 Javascript
JS实现网页烟花动画效果
2020/03/10 Javascript
用云开发Cloudbase实现小程序多图片内容安全监测的代码详解
2020/06/07 Javascript
JS如何操作DOM基于表格动态展示数据
2020/10/15 Javascript
[01:18]一目了然!DOTA2DotA快捷操作对比第一弹
2014/07/01 DOTA
[01:01:23]完美世界DOTA2联赛PWL S2 Forest vs FTD.C 第一场 11.26
2020/11/30 DOTA
Python读取Excel的方法实例分析
2015/07/11 Python
详解Python的Django框架中Manager方法的使用
2015/07/21 Python
pycham查看程序执行的时间方法
2018/11/29 Python
将pandas.dataframe的数据写入到文件中的方法
2018/12/07 Python
Python PIL读取的图像发生自动旋转的实现方法
2019/07/05 Python
Python类中的魔法方法之 __slots__原理解析
2019/08/26 Python
Python+appium框架原生代码实现App自动化测试详解
2020/03/06 Python
Python 批量读取文件中指定字符的实现
2020/03/06 Python
实例代码讲解Python 线程池
2020/08/24 Python
python 获取域名到期时间的方法步骤
2021/02/10 Python
python爬虫scrapy框架的梨视频案例解析
2021/02/20 Python
使用Canvas操作像素的方法
2018/06/14 HTML / CSS
HTML5标签嵌套规则详解【必看】
2016/04/26 HTML / CSS
机械电子工程毕业生自荐信
2013/11/23 职场文书
销售提升方案
2014/06/07 职场文书
禁烟标语大全
2014/06/11 职场文书
公安机关查摆剖析材料
2014/10/10 职场文书
《小小的船》教学反思
2016/02/18 职场文书
Springboot使用Spring Data JPA实现数据库操作
2021/06/30 Java/Android
python图像处理 PIL Image操作实例
2022/04/09 Python