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

C#使用PHP服务端的Web Service通信实例,第1张

这篇文章主要介绍了C#使用PHP服务端的Web

Service通信实例,需要的朋友可以参考下

注:本例中构建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/

这个需要根据你服务器环境来说,如果是windows 就去下载WAMP 如果是Luni 就去下载LNMP就可以了都有封装包,但是基本上的搭建方式都大同小异,下面就以windows的搭建方法为例为你详细说明:

在windows下安装apache php mysql

从各官方网站下了APACHE2.050、PHP5、MYSQL4.0.20、PHPMYADMIN2.57

apache_2.0.50-win32-x86-no_ssl.msi

php-5.0.0-Win32.zip

mysql-4.0.20d-win.zip

phpMyAdmin-2.5.7.zip

系统 win2003 系统盘为: D盘

第一步: 安装apache 并配置支持PHP

点击安装文件apache_2.0.50-win32-x86-no_ssl.msi

将apache安装在 D:\apache2 目录(随自己喜好)下

将php-5.0.0-Win32.zip 里内容解压到 D:\php 里

找到 php目录里的 php.ini-dist 重命名为 php.ini 并拷到 windows目录里(win2k 里为winnt)

我的php.ini是拷到 D:\windows目录

再将php目录里的 php5ts.dll,libmysql.dll 拷到 系统目录(system/system32) 如我的是D:\windows\system里

配置apache里的httpd.conf

打开 D:\Apache2\conf\httpd.conf 这个文件

找到 AddDefaultCharset ISO-8859-1 将其改为 AddDefaultCharset GB2312 (让默认语言编码为简体中文)

找到 DocumentRoot "D:/Apache2/htdocs" 将其改为你的WEB目录(可不改)如我的为 DocumentRoot "D:/website"

找到 DirectoryIndex index.html index.html.var 在后面加入 index.htm index.php

选择安装模式: 模块化模式安装 或 CGI模式安装 (选一样即可)

--------------模块化安装配置------------------------------------

找到 #LoadModule ssl_module modules/mod_ssl.so 这行,在此行后加入一行

LoadModule php5_module d:/php/php5apache2.dll

其中d:/php/php5apache2.dll 为你php目录中php5apache2.dll所在的位置

找到 AddType application/x-gzip .gz .tgz 这行,在此行后加入一行

AddType application/x-httpd-php .php

---------------------------------------------------------------

--------------CGI安装配置--------------------------------------

找到 AddType application/x-gzip .gz .tgz 这行,加入如下即可

ScriptAlias /php/ "d:/php/"

AddType application/x-httpd-php .php

Action application/x-httpd-php "/php/php-cgi.exe"

---------------------------------------------------------------

此时PHP环境基本已经配置成功

在WEB根目录(如我的D:\website)里建一个名为test.php的文件内容如下

<? echo phpinfo()?>

重新启动apache服务

用浏览器打开 http://localhost/test.php

如果可以看到php配置输出信息就OK了

<?php

echo ' web-root = '.$_SERVER['DOCUMENT_ROOT'].'<br>'

echo ' current-file = '.__FILE__.'<br>'

echo ' current-dir = '.dirname(__FILE__).'<br>'

echo ' http-root = '.$_SERVER['HTTP_HOST'].'<br>'

echo ' web-position = '.$_SERVER['PHP_SELF'].'<br>'

$file='c:/webroot/index.php'

echo ' file-position = '.$file.'<br>'

$fileWebAddress='http://'.str_replace($_SERVER['DOCUMENT_ROOT'],$_SERVER['HTTP_HOST'],$file)

echo ' file-web-position = '.$fileWebAddress.'<br>'

?>


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/518372.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-06-20
下一篇2023-06-20

发表评论

登录后才能评论

评论列表(0条)

    保存