为什么卷曲时间不起作用


why curl time out does not work

我正在开发这个应用程序,它连接(使用NUSOAP)到web服务以检索内容。当我向web服务提交XML时,我连接了,但响应需要30秒以上的时间才能回复。我尝试了几次更改,但脚本仍然在30秒结束,并显示以下消息(来自Nusoap对象):cURL错误:28:操作在30015毫秒后超时,收到0个字节的

这是我正在使用的代码(部分):

$ch = curl_init();
    curl_setopt($ch, CURLOPT_TIMEOUT, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60);
    $client = new nusoap_client ( $this->getCreditcheckUrl(), true,false, false, false, false, 0, 300);
    $client->soap_defencoding = 'utf-8';
    $client->decode_utf8 = false;
    $client->operation = 'contentOrder';
    $client->useHTTPPersistentConnection (); // Uses http 1.1 instead of
    // 1.0
    $client->setUseCurl ( true );
    $client->loadWSDL ();
    $client->portName = "PrepareOrderPort";
    $client->setCredentials ( "", "", "certificate", array (
            // "cainfofile" => $sslPath . $caPath , //OPTIONAL
            "sslcertfile" => self::sslPath . self::sslcert,
            "sslkeyfile" => self::sslPath . self::sslcert,
            "passphrase" => "xxxxxxxxx",
            "certpassword" => "xxxxxxxx", // OPTIONAL
            "verifypeer" => False, // OPTIONAL
            "verifyhost" => 1  // OPTIONAL
    ) );
    $client->send($xmlRequest);
    $contentRaw = $client->responseData;

有没有一种方法可以强制它只在得到回应时停止?

我们非常感谢您的帮助,我已经为此奋斗了好几个星期了。

谢谢。

在设置了curl句柄($ch)的选项后,您永远不会对其进行任何操作-nusoap客户端对象不知道它,因此它没有任何效果。

尝试在nusoap_client中使用setCurlOption方法——这实际上应该具有您想要的效果。

Andrew我尝试了以下操作,结果成功了。。。

$client->setCurlOption(CURLOPT_CONNECTTIMEOUT, 60);

非常感谢。