Пробую настроить запросы на сервер через прокси. Использую библиотеку Zend_Http_Client.
Вот простой пример запроса
$config = array(
'adapter' => 'Zend_Http_Client_Adapter_Proxy',
'proxy_host' => '***.***.***.***',
'proxy_port' => 3180,
);
$client = new Zend_Http_Client('http://google.com', $config);
$response=$client->request();
echo $response->getBody();
Прокси сервер примерно в 30% случаев обрывает соединение. Выкидывает ексепшн Zend_Http_Client_Adapter_Exception "Unable to Connect to ...host..."
Я решил пока эту проблему таким образом
class ...
public function ...
$config = array(
'adapter' => 'Zend_Http_Client_Adapter_Proxy',
'proxy_host' => '***.***.***.***',
'proxy_port' => 3180,
);
$client = new Zend_Http_Client('http://google.com', $config);
$response=$this->tryConnect($client);
echo $response->getBody();
...
public function tryConnect(Zend_Http_Client $client, $i=1) {
try {
return $client->request();
} catch(Zend_Http_Client_Adapter_Exception $exception) {
if($i>7) {
throw new CException($exception->getMessage());
} else {
return $this->tryConnect($client, ++$i);
}
}
}
...
Грубо говоря, делаю 7 попыток выполнить запрос. Это в принципе то, что мне нужно. Но мне не нравится, каким образом я достиг этого решения. Я думаю, что должно быть что-то более изящное. Спасибо.