如何在Zend_Http_Client中设置"REFERER"?

Mr *_*der 1 php curl zend-framework 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();
Run Code Online (Sandbox Code Playgroud)

在我的请求中,我看到除REFERER头之外的各种标头设置?它可以使用$ client-> setHeaders('Referer',$ url); 但我也在寻找更好的方法.谢谢.

Mar*_*cin 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());
Run Code Online (Sandbox Code Playgroud)

上面的代码导致:

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)
Run Code Online (Sandbox Code Playgroud)

所以在这种情况下,似乎正确设置了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());
Run Code Online (Sandbox Code Playgroud)

这也和以前一样.