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了
<?phpecho ' 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>'
?>
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)