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

网络编程 2025-03-29 09:38www.168986.cn编程入门

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的通信。

上一篇:thinkPHP简单实现多个子查询语句的方法 下一篇:没有了

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by