首页 > 解决方案 > 没有卷曲的 NuSoap

问题描述

我必须将数据发送到 SOAP,非常不便。我不能使用 cUrl

这是我的代码的一部分,它几乎是一个 nuSoap 示例。

 $wsdl = "wsdl address";

$proxyhost = isset($_POST['proxyhost']) ? $_POST['proxyhost'] : '';
$proxyport = isset($_POST['proxyport']) ? $_POST['proxyport'] : '';
$proxyusername = isset($_POST['proxyusername']) ? $_POST['proxyusername'] : '';
$proxypassword = isset($_POST['proxypassword']) ? $_POST['proxypassword'] : '';
$useCURL = isset($_POST['usecurl']) ? $_POST['usecurl'] : '0';

$client = new nusoap_client($wsdl, 'wsdl', $proxyhost, $proxyport, $proxyusername, $proxypassword);

$client->soap_defencoding = 'UTF-8'; 
$client->decode_utf8 = false;
$client->setUseCurl($useCURL);

$err = $client->getError();

if ($err) {
    echo '<h2>Constructor error</h2><pre>' . $err . '</pre>';
}

$param = array('credentials'=>array('user'=>'user', 'passwd'=>'passwd'));
$result = $client->call('Autenticate', array('parameters' => $param), '', '', false, true);

if ($client->fault) {
        echo '<h2>Fault</h2><pre>';
        print_r($result);
        echo '</pre>';
} else {
        // Check for errors
        $err = $client->getError();
        if ($err) {
                // Display the error
                echo '<h2>Error</h2><pre>' . $err . '</pre>';
        } else {
                // Display the result
                echo '<h2>Result</h2><pre>';
                print_r($result);
                echo '</pre>';
        }
}
echo '<h2>Request</h2><pre>' . htmlspecialchars($client->request, ENT_QUOTES) . '</pre>';
echo '<h2>Response</h2><pre>' . htmlspecialchars($client->response, ENT_QUOTES) . '</pre>';
echo '<h2>Debug</h2><pre>' . htmlspecialchars($client->debug_str, ENT_QUOTES) . '</pre>';

每当我在服务器中启用 cURL 时,它就可以工作。当我没有的时候,我得到了这个

wsdl error: Getting wsdl address - HTTP ERROR: The PHP cURL Extension is required for HTTPS or NLTM.  You will need to re-build or update your PHP to include cURL or change php.ini to load the PHP cURL extension.

有人经历过吗?

提前致谢

标签: phpcurlsoapnusoap

解决方案


推荐阅读