SoapFault异常:[HTTP]"无法连接"

时间:2017-11-07 02:11:28

标签: php soap centos

我有一个php网站曾经在Centos 6.2上运行,但我无法在Centos 7上运行。

我有Apache 2.4.6 with php 5.4.16

我遇到的问题是php SoapClient给了我一个Soap Exception"无法连接"我的Soap Server和我的http服务器在同一台服务器上。我尝试使用服务器IP地址和127.0.0.1但仍然无法正常工作。

所以我做了一个简单的php测试文件(test.php)来消除我的web服务器的所有复杂性

我不明白的是,如果我从HTTP请求运行php文件,它只会失败。 (http://my-server/test-soap.php

如果我从命令行运行php文件,它可以工作。 (php test-soap.php)

如果我用Curl测试是有效的。如果我从我的Mac(远程机器)使用Soap-UI,它可以工作。

另外,如果我运行tcpdump,我甚至不会看到php试图连接。 (根本没有包)

有什么想法吗?

这是测试代码。

<?php
if (php_sapi_name() == "cli") {
        echo "Running from CLI\n";
        $nl="\n";
        $_SERVER = array (
                'SERVER_ADDR' => '127.0.0.1',
                'PHP_AUTH_USER' => '',
                'PHP_AUTH_PW' => '',
        );
} else {
        $nl="<br/>\n";
    // Not in cli-mode
}
echo "Start".$nl;
ini_set('soap.wsdl_cache_enabled',0);
ini_set('soap.wsdl_cache_ttl',0);
$http_port       =  80;
$ems_soap_port   =  8003;
$ems_addr        = "127.0.0.1";
$soap_target_ems = "https://$ems_addr:$ems_soap_port";
$wsdl_target_ems = "http://$ems_addr:$http_port/wsdl/gccpa.wsdl";
$uri_ems         = "urn:gccpa";

$context = stream_context_create(array(
          'ssl' => array(
                'verify_peer' => false,
                'verify_peer_name' => false,
                'allow_self_signed' => true
                )
        ));
$client  = new SoapClient( $wsdl_target_ems, array(
          'stream_context' => $context,
          'exceptions'=> true,
          'location'  => $soap_target_ems ,
          'uri'       => $uri_ems,
          'encoding'  => 'UTF-8',
          'trace'     => true ) );
try
{
    $getnodesResult = $client->__soapCall( 'gccpa-getnodes',
        array( 'parameters' => array('sessionId' => 0, 'sysId' => 1) ) );
    echo "Soap Successull".$nl;
}
catch(SoapFault $exception)
{
   echo 'gccpa:'.'getnodes  exception: '. $exception ;
   unset($client);
}
?>

0 个答案:

没有答案