在Zend_HTTP_Client中跳过SSL检查

时间:2010-07-30 00:05:23

标签: php zend-framework ssl curl https

我正在使用Zend_HTTP_Client将HTTP请求发送到服务器并获取响应。我发送请求的服务器是HTTPS Web服务器。目前,一次往返请求大约需要10-12秒。我理解开销可能是因为请求所依赖的Web服务器的处理速度很慢。

是否有可能像我们在CURL中那样跳过SSL证书检查以加快性能?如果是这样,如何设置这些参数?

我有以下代码:

    try
    {
        $desturl ="https://1.2.3.4/api";

        // Instantiate our client object
        $http = new Zend_Http_Client();

        // Set the URI to a POST data processor
        $http->setUri($desturl);

        // Set the POST Data
        $http->setRawData($postdata);

        //Set Config
        $http->setConfig(array('persistent'=>true));

        // Make the HTTP POST request and save the HTTP response
        $httpResponse = $http->request('POST');
    }
    catch (Zend_Exception $e)
    {
        $httpResponse = "";
    }

    if($httpResponse!="")
    {
        $httpResponse = $httpResponse->getBody();
    }

    //Return the body of HTTTP Response
    return  $httpResponse;

1 个答案:

答案 0 :(得分:9)

如果您确信SSL是问题,那么您可以将Zend_Http_Client配置为使用curl,然后传入相应的curl选项。

http://framework.zend.com/manual/en/zend.http.client.adapters.html

$config = array(  
    'adapter'   => 'Zend_Http_Client_Adapter_Curl',  
    'curloptions' => array(CURLOPT_SSL_VERIFYPEER => false),  
); 

$client = new Zend_Http_Client($uri, $config);

我实际上建议使用curl适配器,因为curl几乎包含了您需要的所有选项, Zend 确实提供了一个非常好的包装器。< / p>