您好 我使用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);但我也在寻找更好的方法。 感谢。
答案 0 :(得分:6)
你的代码有趣的是我只是试图运行它并且出现错误。所以我无法测试它。出于这个原因,我尝试了另一种方式:
$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标头。
编辑: 根据OP的要求,我也进行了测试:
$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());
这也和以前一样。