http://blog.sina.com.cn/s/blog_7ceb20b90100uo6l.html
1. 创建LAMP下php的webservice接口
1.1 下载nusoap- 0.9.5.zip,解压缩后有两个文件夹:lib,samples
1.2 在Linux环境下,将lib文件夹拷到/var/www/html文件夹中
1.3 在html文件夹下面创建server.php,提供了2个webservice接口,代码如下:
<?php
require_once("lib/nusoap.php");
function hello()
{
return 'Hello World!';
}
function add($a,$b)
{
return $a+$b;
}
$soap = new soap_server();
$soap->register('hello');
$soap->register('add');
$soap->service($HTTP_RAW_POST_DATA);
?>
1.4在nusoap文件夹下面创建test.php,测试提供的webservice接口,代码如下:
<?php
require_once("lib/nusoap.php");
$client = newnusoap_client("http://127.0.0.1/server.php");
$str=$client->call('hello');
echo $str;
echo "</br>";
$a=1;
$b=3;
$params2 = array('a'=>$a,'b'=>$b);
$added = $client->call('add', $params2);
echo $a."+".$b."=".$added;
?>
1.5在地址栏输入http://localhost//test.php,页面显示结果如下:
Hello World!
1+3=4
2. Android应用程序调用php的webservice接口
2.1在AndroidSDK中并没有提供调用WebService的库,因此,需要使用第三方的SDK来调用WebService。这里用的是KSOAP2。
下载ksoap2-android-assembly-2.5.4-jar-with-dependencies.jar
2.2 导入jar包,新建工程,代码如下:
publicvoid showResult(intx,inty)
{
try
{
SoapObject rpc =new SoapObject("http://192.168.1.211","add");
rpc.addProperty("a", x);
rpc.addProperty("b", y);
SoapSerializationEnvelope envelope =new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.bodyOut= rpc;
HttpTransportSE ht=newHttpTransportSE("http://192.168.1.211/nusoap/server.php");
ht.debug=true;
ht.call("http://192.168.1.211/add", envelope);
Object a=(Object)envelope.getResponse();
result.setText("计算结果:"+a.toString());
return;
}catch (Exception e)
{
System.out.print(e.toString());
}
}