C#使用PHP服务端的Web Service通信实例
C与PHP服务端Web Service通信实例
在这个实例中,我们将介绍如何使用C调用PHP服务端的Web Service。我们将采用SOAP协议进行通信,并通过NuSoap插件在PHP端搭建SOAP服务器。
一、PHP端搭建SOAP服务器
我们需要使用NuSoap插件来搭建SOAP服务器。代码示例如下:
```php
require_once("lib/nusoap.php"); //调用NuSoap
$server = new soap_server(); //创建soap服务端
$server->configureWSDL("login_service"); //配置WSDL
$namespace = "
$server->wsdl->schemaTargetNamespace = $namespace; //设置wsdl命名空间
$server->register(
'login_verifiy', //注册Web服务名称
array('name' => 'xsd:string', 'pw' => 'xsd:string'), //接受参数
array('return' => 'xsd:string'), //返回
$namespace, //命名空间
false, // soapaction:默认
'rpc', // 类型: rpc or document
'encoded', // 参数encoded(编码)或 literal(文字)
'用于登录的Web方法' //描述
);
$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客户端调用
在C客户端,我们需要通过调用SOAP服务来与PHP服务端通信。代码示例如下:
我们需要读取configi配置文件中的webservice url。配置文件内容如下:
```csharp
[system]url=
```
然后,我们在C客户端使用以下代码调用PHP服务端的Web Service:
```csharp
private void Form1_Load(object sender, EventArgs e) {
StringBuilder temp = new StringBuilder(256);
GetPrivateProfileString("system", "url", null, temp, 256, System.IO.Directory.GetCurrentDirectory() + "\\configi");
Program.server_url = temp.ToString(); //储存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);
}
```上述代码中,[DllImport("kernel32")]是用于调用api函数读ini文件的声明。在Form1_Load事件中,我们通过读取configi配置文件获取webservice url,并将其存储在Program.cs中的全局变量server_url中。在button1_Click事件中,我们创建WebReference.login_service对象并调用其login_verifiy方法,传入用户名和密码,然后通过MessageBox显示返回结果。通过这种方式,我们实现了C与PHP服务端Web Service的通信。
编程语言
- C#使用PHP服务端的Web Service通信实例
- thinkPHP简单实现多个子查询语句的方法
- 浅谈COOKIE和SESSION区别
- Yii实现简单分页的方法
- JS抛物线动画实例制作
- 微信小程序自动客服功能
- 在WordPress中实现评论头像的自定义默认和延迟加
- Linux下MySQL 5.6.27 安装教程
- 基于Vue实现拖拽功能
- PHP从零开始打造自己的MVC框架之类的自动加载实
- JavaScript生成带有缩进的表格代码
- js遍历添加栏目类添加css 再点击其它删除css【推
- vue实现样式之间的切换及vue动态样式的实现方法
- Highcharts学习之数据列
- Angular.js中angular-ui-router的简单实践
- javascript使用Promise对象实现异步编程