Php wsdl错误:HTTP错误:块终止符的套接字读取超时

Php wsdl错误:HTTP错误:块终止符的套接字读取超时,php,web-services,soap,wsdl,nusoap,Php,Web Services,Soap,Wsdl,Nusoap,我尝试在CMS和基于web服务并使用NuSOAP库的CRM系统的数据之间建立连接。但是,当尝试向CRM服务器发出请求时,我的web服务器()会返回此类错误 wsdl error: Getting http://79.172.60.168/poseidon/soap.php?wsdl - HTTP ERROR: socket read of chunk terminator timed out" 不过,如果请求是从另一台服务器发送的,则一切正常。如果请求被发送到另一个wsdl服务器-一切正常:

我尝试在CMS和基于web服务并使用NuSOAP库的CRM系统的数据之间建立连接。但是,当尝试向CRM服务器发出请求时,我的web服务器()会返回此类错误

wsdl error: Getting http://79.172.60.168/poseidon/soap.php?wsdl - HTTP ERROR: socket read of chunk terminator timed out"
不过,如果请求是从另一台服务器发送的,则一切正常。如果请求被发送到另一个wsdl服务器-一切正常:

该文件如下所示:

<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
require($_SERVER["DOCUMENT_ROOT"]."/soap/lib/nusoap.php");
//$APPLICATION->IncludeComponent("pex:web.client");


require_once('./lib/nusoap.php');
$proxyhost = isset($_POST['proxyhost']) ? $_POST['proxyhost'] : '';
$proxyport = isset($_POST['proxyport']) ? $_POST['proxyport'] : '';
$proxyusername = isset($_POST['proxyusername']) ? $_POST['proxyusername'] : '';
$proxypassword = isset($_POST['proxypassword']) ? $_POST['proxypassword'] : '';
$client = new nusoap_client('http://79.172.60.168/poseidon/soap.php?wsdl', 'wsdl',
$proxyhost, $proxyport, $proxyusername, $proxypassword);
$err = $client->getError();
if ($err) {
    echo '<h2>Constructor error</h2><pre>' . $err . '</pre>';
}



//$myWsdl = 'http://79.172.60.168/poseidon/soap.php?wsdl';
$myAuth = array(
    'user_name' => 'foobar',
    'password' => MD5('foobar'),    
);
//$soapClient = new nusoap_client($myWsdl,true);
//var_dump($soapClient);
//
// Login
$loginParams = array('user_auth' => $myAuth);
$loginResult = $client->call('login', $loginParams);
$sessionId = $loginResult['id'];
$err = $client->getError();
echo $err;
echo '<h2>Отладка</h2>';
echo '<pre>' . htmlspecialchars($client->debug_str, ENT_QUOTES) . '</pre>'; 
echo $sessionId;
$set_entry = $client->call('set_entry', Array(
'session'=>$sessionId, 
'module_name'=>'PsdnProducts', 
'name_value_list'=>array(
            array("name" => 'ID',"value" => 1),
            array("name" => 'name',"value" => 'Test')
            )));    
echo '<pre>';
var_dump($set_entry);
echo '</pre>';            
?>

我只是在猜测, 您用于向CRM发送数据的wsdl将有许多Sobject,它们将以递归方式相互引用。有时由于它的原因,它无法正确加载wsdl。因此,您应该使用一种用于发送数据的sObject,删除其他sObject。也许会有帮助

谢谢,ambuj我只是在猜, 您用于向CRM发送数据的wsdl将有许多Sobject,它们将以递归方式相互引用。有时由于它的原因,它无法正确加载wsdl。因此,您应该使用一种用于发送数据的sObject,删除其他sObject。也许会有帮助


谢谢,ambuj

这有帮助吗我的建议是:不要用NuSOAP,它很旧,有车,已经死了。是的,我读过那本。字符串不是UTF-8,它是ISO:(我也没有选择,因为CRM开发人员要求使用这个库。这可能会有帮助吗?-我的建议:不要使用NuSOAP,它很旧,它有缺陷,它已经死了。是的,我读过这个。字符串不是UTF-8,它是ISO:(我也没有选择,因为CRM开发人员要求使用这个库。