1

こんにちは私はアダプタZend_Http_Client_Adapter_CurlでZend_Http_Clientを使用しています、私はを使用して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);を使用して実行できます。また、私はより良い方法を探しています。ありがとう。

4

1 に答える 1

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());

これも以前と同じように機能します。

于 2011-02-28T10:36:36.460 に答える