使用PHP調用JAVA語言開發的WebService。
客戶端提交兩個String類型的參數,服務端返回一個對象類型。
服務端使用AXIS-1.4作為SOAP引擎。客戶端為PHP5.2.9,使用NuSOAP作為SOAP引擎。
服務端
對象類
復制代碼 代碼如下:
import java.io.Serializable;
public class Person implements Serializable {
/**
*
*/
private static final long serialVersionUID = -410186774891162281L;
private String username;
private int age;
private boolean sex;// true:male;false:female
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public boolean getSex() {
return sex;
}
public void setSex(boolean sex) {
this.sex = sex;
}
}
服務類
復制代碼 代碼如下:
public class UserLogin {
public Person login(String loginName, String loginPasswd) {
Person aPerson = new Person();
if (loginName.equals("laoli") && loginPasswd.equals("111111")) {
aPerson.setUsername("老李");
aPerson.setAge(55);
aPerson.setSex(true);
} else if (loginName.equals("xiaoli") && loginPasswd.equals("123456")) {
aPerson.setUsername("小麗");
aPerson.setAge(23);
aPerson.setSex(false);
} else {
aPerson = null;
}
return aPerson;
}
}
客戶端
復制代碼 代碼如下:
<?php
/*
* Created on 2011-10-12
* Author wanghao
*
* package_name/userLoginClient.php
*/
header("Content-Type: text/html;charset=utf-8");
// Pull in the NuSOAP code
require_once ("libs/nusoap.php");
// Create the client instance
$client = new nusoapclient('http://localhost:8080/axis/services/UserLoginWS?wsdl', true);
$client->soap_defencoding = 'utf-8';
$client->decode_utf8 = false;
$client->xml_encoding = 'utf-8';
// Check for an error
$err = $client->getError();
if ($err) {
// Display the error
echo '<h2>Constructor error</h2><pre>' . $err . '</pre>';
// At this point, you know the call that follows will fail
}
// Call the SOAP method
$param=array('loginName'=>'laoli', 'loginPasswd'=>'111111');
$result = $client->call('login', $param);
// Check for a fault
if ($client->fault) {
echo '<h2>Fault</h2><pre>';
print_r($result);
echo '</pre>';
} else {
// Check for errors
$err = $client->getError();
if ($err) {
// Display the error
echo '<h2>Error</h2><pre>' . $err . '</pre>';
} else {
// Display the result
echo '<h2>Result</h2><pre>';
print_r($result);
echo '</pre>';
}
}
echo '<br>';
$param=array('loginName'=>'xiaoli', 'loginPasswd'=>'123456');
$result = $client->call('login', $param);
// Check for a fault
if ($client->fault) {
echo '<h2>Fault</h2><pre>';
print_r($result);
echo '</pre>';
} else {
// Check for errors
$err = $client->getError();
if ($err) {
// Display the error
echo '<h2>Error</h2><pre>' . $err . '</pre>';
} else {
// Display the result
echo '<h2>Result</h2><pre>';
print_r($result);
echo '</pre>';
}
}
?>