Codeigniter:Soap客户端调用在PHP中运行良好而不在C#中

时间:2015-02-18 17:14:17

标签: c# php web-services codeigniter soap

我在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而且我收到的内容错误类型

0 个答案:

没有答案