как установить "REFERER" в Zend_Http_Client? - PullRequest
1 голос
/ 28 февраля 2011

Привет, я использую Zend_Http_Client с адаптером Zend_Http_Client_Adapter_Curl, я попытался установить REFERER, используя

  $client = new Zend_Http_Client('http://www.example.com',array('adapter'=>'Zend_Http_Client_Adapter_Curl');
        $client->getAdapter()->setCurlOption('CURLOPT_REFERER','http://www.google.com');
$client->request('POST');
echo $client->getLastRequest();

В моем запросе я вижу все виды получения заголовка, кроме заголовка REFERER ??Это можно сделать с помощью $ client-> setHeaders ('Referer', $ url);также, но я ищу лучший путь.Спасибо.

1 Ответ

6 голосов
/ 28 февраля 2011

Что интересно в вашем коде, так это то, что я только что попытался запустить его и получил ошибки.Поэтому я не смог проверить это.По этой причине я попробовал другой способ:

    $adapter = new Zend_Http_Client_Adapter_Curl();
    $adapter->setCurlOption(CURLOPT_REFERER, 'http://www.google.com');

    $client = new Zend_Http_Client('http://www.example.com');      
    $client->setAdapter($adapter);            

    $client->request('POST');
    var_dump($client->getLastRequest());

Приведенный выше код приводит к:

string 'GET /domains/example/ HTTP/1.1    
Accept: */*    
Referer: http://www.google.com     <-- THE REFERER
Host: www.iana.org    
Connection: close    
Accept-encoding: gzip, deflate    
User-Agent: Zend_Http_Client


' (length=180)

Так что в этом случае кажется, что заголовок Referer установлен правильно.

РЕДАКТИРОВАТЬ: По запросу ОП я также проверил:

    $adapter = new Zend_Http_Client_Adapter_Curl();

    $client = new Zend_Http_Client('http://www.example.com');
    $client->setAdapter($adapter);

    $client->getAdapter()->setCurlOption(CURLOPT_REFERER, 'http://www.google.com');

    // This line below results in error:  
    // $client->getAdapter()->setCurlOption('referer', 'http://www.google.com');

    $client->request('POST');
    var_dump($client->getLastRequest());

Это также работает, как и раньше.

...