2017-03-23 47 views
1

我知道你可以使用Elastica客戶端,像這樣做:如何在官方Elasticsearch PHP客戶端中設置代理?

$client = new \Elastica\Client(array(
    'host' => 'my host', 
    'port' => '9200', 
    'proxy' => 'my proxy' 
)); 

,但我想如果可能的話使用官方客戶端。 我根據文檔here建立了連接。

$hosts = [ 
    [ 
    'host' => 'my host', 
    'port' => '9200', 
    'scheme' => 'http', 
    'user' => 'my user', 
    'pass' => 'my pass' 
    ] 
]; 
$client = Elasticsearch\ClientBuilder::create() 
    ->setHosts($hosts) 
    ->build(); 

但是,關於如何設置代理的文檔中沒有任何內容。可能嗎?

順便說一句,我見過this question,但它已過時,並不適用於當前版本。

回答

1

可能有一個更清晰的語法,但設置捲曲參數應該工作:

$client = Elasticsearch\ClientBuilder::create() 
    ->setHosts($hosts) 
    ->setConnectionParams([ 
     'client' => [ 
      'curl' => [ 
       CURLOPT_PROXY => $proxy 
      ] 
     ] 
    ]) 
    ->build(); 
+0

這工作!只是注意不過,如果你還需要設置代理服務器的端口,使用: ' '捲曲'=> [ CURLOPT_PROXY => 「代理」, CURLOPT_PROXYPORT => 「端口」 ]' – mrbubblesort

相關問題