当前位置:首页 > PHP教程 > php高级应用 > 列表

C#使用PHP服务端的Web Service通信实例

发布:smiling 来源: PHP粉丝网  添加日期:2020-11-07 11:29:01 浏览: 评论:0 

这篇文章主要介绍了C#使用PHP服务端的Web Service通信实例,需要的朋友可以参考下。

注:本例中构建Web Service采用SOAP方式,通过php插件NuSoap来搭建SOAP服务器,代码如下:

  1. <?php 
  2. require_once("lib/nusoap.php"); //调用NuSoap 
  3.  
  4. $server = new soap_server(); //创建soap服务端 
  5. $server->configureWSDL("login_service"); //配置WSDL 
  6. $namespace = "http://www.abcd9.com";  
  7. $server->wsdl->schemaTargetNamespace = $namespace//设置wsdl命名空间为http://www.abcd9.com 
  8. $server->register( // 注册Web服务 
  9.         'login_verifiy'//定义名称  
  10.         array('name'=>'xsd:string','pw'=>'xsd:string'),  //接受参数 
  11.         array('return'=>'xsd:string'),  //返回 
  12.         $namespace//命名空间 
  13.         false, // soapaction:默认 
  14.         'rpc'// 类型: rpc or document 
  15.         'encoded'// 参数:encoded(编码)或 literal(文字) 
  16.         'A web method of login' //描述 
  17. );         
  18. $POST_DATA = isset($GLOBALS['HTTP_RAW_POST_DATA'])? $GLOBALS['HTTP_RAW_POST_DATA'] : '';                 
  19. $server->service($POST_DATA); //将提交的数据传递给soap服务 
  20.  
  21. function login_verifiy($user,$pw) { //服务执行内容,本示例中为显示输入的帐号密码 
  22.  return 'user:'.$user.' password:'.$pw); 
  23. ?> 

C#客户端调用:

  1. [DllImport("kernel32")] //调用api函数读ini文件。返回值为字符串缓冲区的长度 
  2. private static extern long GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath); 
  3.  
  4. private void Form1_Load(object sender, EventArgs e) 
  5.     StringBuilder temp = new StringBuilder(256); 
  6.     GetPrivateProfileString("system""url", null, temp, 256, System.IO.Directory.GetCurrentDirectory()+"\\config.ini");   
  7.  
  8.     //通过读取config.ini配置文件(结构见附加内容)来获取webservice url 
  9.     Program.server_url = temp.ToString(); //Program.cs中的全局变量server_url用以储存webservice url 
  10.  
  11. private void button1_Click(object sender, EventArgs e) 
  12.     WebReference.login_service l = new WebReference.login_service(); 
  13.  
  14.     string s=l.login_verifiy(username.Text, password.Text); 
  15.  
  16.     MessageBox.Show(s); 

附config.ini内容:

  1. [system] 
  2. url=http://127.0.0.1:100/ 

Tags: C Web Service

分享到: