【问题标题】:Getting Zend_Http Final URL获取 Zend_Http 最终 URL
【发布时间】:2011-01-07 16:16:56
【问题描述】:

发出一个简单的请求,例如:

$client = new Zend_Http_Client('http://example.org');
$response = $client->request();

重定向后如何获得最终到达网址? 除非我遗漏了什么,否则我在文档或 API 文档中没有看到任何方法。

提前致谢。

【问题讨论】:

    标签: zend-framework zend-http-client


    【解决方案1】:

    如果有重定向,Zend_Http_Client 将最后一个 URL 更新为 Zend_Http_Client->uri 属性。

    $sourceUrl = 'http://google.com';
    $client = new Zend_Http_Client($sourceUrl); 
    $response = $client->request(); 
    $finalUrl = $client->getUri()->__toString();
    
    var_dump($sourceUrl);
    // string(17) "http://google.com"
    var_dump($finalUrl);
    // string(25) "http://www.google.com:80/" 
    

    【讨论】:

      【解决方案2】:

      未测试:

      $response->getHeader('Location');
      

      【讨论】:

      • 有重定向时位置包含在标头中。标头不包含最终 URL。我已经放弃并开始使用 curl。感谢您的尝试!
      【解决方案3】:

      从客户端获取最后一个请求,然后提取标头。

      $client = new Zend_Http_Client('http://webonyx.com');
      $response = $client->request();
      $lastHeaders = Zend_Http_Response::extractHeaders($client->getLastRequest());
      
      // $lastHeaders['host'] will be your final redirected host
      

      【讨论】:

        猜你喜欢
        • 2014-06-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-15
        • 2011-03-05
        • 2017-07-11
        • 2021-05-12
        相关资源
        最近更新 更多