之前用的nusoap做的项目一直什么问题,最近再看看这个项目时发现无法正常使用了。就是当客户端调用call方法后会导致页面一直处于加载状态,直到连接超时才停止,而且返回false。弄了一天没找到原因,google了大多说是和php自身的soap冲突了,但是我一直没去修改php.ini,为何之前可以现在不行了呢?测试环境:wamp。已经看过php.ini,没有加载php_soap.dll,phpinfo里也没有soap相关字眼。服务端:
// Pull in the NuSOAP code
require_once('nusoap.php');
// Enable debugging *before* creating server instance
$debug = 1;
// Create the server instance
$server = new soap_server;
// Register the method to expose
$server->register('hello');
// Define the method as a PHP function
function hello($name) {
    return 'Hello, ' . $name;
}
// Use the request to (try to) invoke the service
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
$server->service($HTTP_RAW_POST_DATA);客户端:
// Pull in the NuSOAP code
require_once('nusoap.php');
// Create the client instance
$client = new soapclient('http://localhost/nusoap/2.php');
// Check for an error
$err = $client->getError();
if ($err) {
    // Display the error
    echo '<p><b>Constructor error: ' . $err . '</b></p>';
    // At this point, you know the call that follows will fail
}
// Call the SOAP method
$result = $client->call('hello', array('name' => 'Scott'));
// Check for a fault
if ($client->fault) {
    echo '<p><b>Fault: ';
    print_r($result);
    echo '</b></p>';
} else {
    // Check for errors
    $err = $client->getError();
    if ($err) {
        // Display the error
        echo '<p><b>Error: ' . $err . '</b></p>';
    } else {
        // Display the result
        print_r($result);
    }
}直接访问服务端是这样提示的:This service does not provide a Web description

解决方案 »

  1.   

    呵呵,路过看看新手报到,多多支持
    Signature-------------------------------------------------------------------------------------We are what we repeatedly do. Excellence, therefore, is not an act, but a habit ugg boots  ugg Classic Mini  ugg classic tall  ugg classic cardy  ugg classic short 
      

  2.   

    php带有SOAP扩展也很好用,没用过NUsoap
      

  3.   

    php自带的soap同样是这情况,当使用soapCall访问服务端时就无响应了,直到连接超时。
      

  4.   

    如果相作分布式编程,请用ice之类的框架,校内就用的是ice吧
      

  5.   

    我也刚开始研究,发现使用localhost就是不行,一定要用本机ip