【问题标题】:Zend_Http_Client cURL authorization exampleZend_Http_Client cURL 授权示例
【发布时间】:2012-02-22 05:31:11
【问题描述】:

我需要创建授权脚本。 Cookie 必须保存并在以后使用,才能在未经授权的情况下访问该页面。谁能给我工作示例?

【问题讨论】:

    标签: php zend-framework cookies curl authorization


    【解决方案1】:

    首先,您必须执行初始请求以从服务器获取 cookie。在响应中,您会将服务器发送的 cookie 保存在响应标头 Set-Cookie 中。您将它们存储在哪里取决于您。我刚刚将它们添加到会话中。

        $uri    = 'http://example.com';
        $client = new Zend_Http_Client();
        $client->setUri($uri);
        $client->setAdapter('Zend_Http_Client_Adapter_Curl');
        $adapter = $client->getAdapter();
        $adapter->setCurlOption(CURLOPT_SSL_VERIFYPEER, false);
    
        /** First Request to get required cookies **/
        $response = $client->request();
    
        /** Get response cookie strings and store them (session, db, file, etc) **/
        $cookies  = (array) $response->getHeader('Set-cookie');
        $session  = new Zend_Session_Namespace();
        $session->storedCookies = $cookies;
    

    现在您已经存储了 cookie,在您下一个请求时,您可以将它们添加到请求中。

        /** Start new Zend_Http_Client instance **/
        $uri      = 'http://example.com';
        $client   = new Zend_Http_Client();
        $client->setUri($uri);
        $client->setAdapter('Zend_Http_Client_Adapter_Curl');
        $adapter  = $client->getAdapter();
        /** This setCurlOption is optional **/
        $adapter->setCurlOption(CURLOPT_SSL_VERIFYPEER, false);
    
    
        $session = new Zend_Session_Namespace();
        $cookies = $session->storedCookies;
        /** Add Stored Cookie strings to Zend_Http_Client instance **/ 
        foreach ($cookies as $cookieStr) {
            $client->setCookie(Zend_Http_Cookie::fromString($cookieStr, $uri));
        }
    
        /** Perform request using stored cookies **/
        $response = $client->request();
    

    如果您有任何问题或需要我详细说明,请告诉我。

    【讨论】:

    • 非常感谢。这正是我所寻求的。据我所知,curl 可以保持持久连接并将其用于队列中的多个请求。 Zend 如何做到这一点?
    猜你喜欢
    • 2016-03-17
    • 2013-06-06
    • 1970-01-01
    • 2016-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-24
    • 1970-01-01
    相关资源
    最近更新 更多