Как установить "REFERER" в Zend_Http_Client?
Привет я использую 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 ответ
Решение
Что интересно в вашем коде, так это то, что я просто попытался запустить его и получил ошибки. Поэтому я не смог проверить это. По этой причине я попробовал другой способ:
$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());
Это также работает, как и раньше.