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+javascript模拟Matrix画面
Oct 09 PHP
PHP IN_ARRAY 函数使用注意事项
Jul 24 PHP
解析在zend Farmework下如何创立一个FORM表单
Jun 28 PHP
php图片处理函数获取类型及扩展名实例
Nov 19 PHP
php数组键值用法实例分析
Feb 27 PHP
php抓取网站图片并保存的实现方法
Oct 29 PHP
Symfony2在Nginx下的配置方法图文教程
Feb 04 PHP
php cookie工作原理与实例详解
Jul 18 PHP
php将html转为图片的实现方法
May 19 PHP
PHP观察者模式定义与用法实例分析
Mar 22 PHP
laravel 解决强制跳转 https的问题
Oct 22 PHP
tp5.1 框架路由操作-URL生成实例分析
May 26 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 Smarty初体验二 获取配置信息
2011/08/08 PHP
解析Linux下Varnish缓存的配置优化
2013/06/20 PHP
javascript 出生日期和身份证判断大全
2008/11/13 Javascript
script的async属性以非阻塞的模式加载脚本
2013/01/15 Javascript
使用jquery解析XML示例代码
2014/09/05 Javascript
javascript实现验证身份证号的有效性并提示
2015/04/30 Javascript
js简单实现竖向tab选项卡的方法
2015/05/04 Javascript
jQuery 3.0中存在问题及解决办法
2016/07/15 Javascript
input 禁止输入特殊字符的四种实现方式
2016/08/24 Javascript
JS查找字符串中出现次数最多的字符
2016/09/05 Javascript
jquery移除了live()、die(),新版事件绑定on()、off()的方法
2016/10/26 Javascript
基于jQuery实现简单人工智能聊天室
2017/02/10 Javascript
H5手机端多文件上传预览插件
2017/04/21 Javascript
使用jQuery实现两个div中按钮互换位置的实例代码
2017/09/21 jQuery
vue.js中引入vuex储存接口数据及调用的详细流程
2017/12/14 Javascript
使用use注册Vue全局组件和全局指令的方法
2018/03/08 Javascript
javascript贪吃蛇游戏设计与实现
2020/09/17 Javascript
JavaScript 异步时序问题
2020/11/20 Javascript
[04:29]2016国际邀请赛中国区预选赛Ehome战队教练采访
2016/06/27 DOTA
Python读写txt文本文件的操作方法全解析
2016/06/26 Python
Django 路由控制的实现
2019/07/17 Python
Python使用requests xpath 并开启多线程爬取西刺代理ip实例
2020/03/06 Python
python 解决selenium 中的 .clear()方法失效问题
2020/09/01 Python
最新Python idle下载、安装与使用教程图文详解
2020/11/28 Python
Python中读取文件名中的数字的实例详解
2020/12/25 Python
css图标制作教程制作云图标
2014/01/19 HTML / CSS
如何用canvas实现在线签名的示例代码
2018/07/10 HTML / CSS
美国学校校服,儿童和婴儿服装:Cookie’s Kids
2016/10/14 全球购物
《绿色蝈蝈》教学反思
2014/03/02 职场文书
恶搞卫生巾广告词
2014/03/18 职场文书
学校欢迎标语
2014/06/18 职场文书
高中生思想道德自我评价
2015/03/09 职场文书
文员岗位职责范本
2015/04/16 职场文书
《青山不老》教学反思
2016/02/22 职场文书
2016年基层党支部书记公开承诺书
2016/03/25 职场文书
Python中的 Set 与 dict
2022/03/13 Python