我在codeigniter中创建了一个SOAP服务器,这是我的控制器
class Sample extends CI_Controller {
function __construct()
{
parent::__construct();
$ns = base_url();
$this->load->library("Nusoap_library");
$this->load->library("Master");
$this->server = new soap_server(); // create soap server object
$this->server->configureWSDL("SOAP", $ns); // wsdl
$this->server->wsdl->schemaTargetNamespace = $ns; // server namespace
}
public function index()
{
$ns = base_url();
$input_array = array ('type' => "xsd:string"); // "addnumbers" method parameters
$return_array = array ("fruit" => "xsd:string");
$this->server->register('Master.fruits', $input_array, $return_array, "urn:SOAPServerWSDL", "urn:".$ns."/addnumbers", "rpc", "encoded", "Fruit Types");
$this->server->service(file_get_contents("php://input")); // read raw data from request body
}
public function client(){
$this->client = new nusoap_client(base_url()."index.php?wsdl", true);
$this->load->view("client");
}
}
服务器工作得很好,我创建了一个Mater类作为库 Master.php [图书馆]
class Master {
public function fruits($type)
{
switch($type)
{
case 'red':
return "Apple";
break;a
case 'yellow':
return "banana";
break;
}
}
}
正如您可以看到控制器,我还创建了一个客户端函数来测试客户端是否正常工作
这是我的客户端查看代码
$error = $this->client->getError();
if ($error) {
echo "<h2>Constructor error</h2><pre>" . $error . "</pre>";
}
$result = $this->client->call("Master.fruits", array("type" => "red"));
if ($this->client->fault) {
echo "<h2>Fault</h2><pre>";
print_r($result);
echo "</pre>";
}
else {
$error = $this->client->getError();
if ($error) {
echo "<h2>Error</h2><pre>" . $error . "</pre>";
}
else {
echo "<h2>Fruits</h2><pre>";
echo $result;
echo "</pre>";
}
}
我在调用SOAP服务器时在php中完美地获得了结果但是如果通过C#调用相同的SOAP服务器来创建服务
我收到错误之类的东西应该不像Master.fruits它应该像masterfruits而且我收到的内容错误类型