taral
@taral
php программист

Как реализовать через Zend_Http_Client устойчивую работу через прокси?

Пробую настроить запросы на сервер через прокси. Использую библиотеку 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 попыток выполнить запрос. Это в принципе то, что мне нужно. Но мне не нравится, каким образом я достиг этого решения. Я думаю, что должно быть что-то более изящное. Спасибо.
  • Вопрос задан
  • 2820 просмотров
Пригласить эксперта
Ответы на вопрос 1
AMar4enko
@AMar4enko
Берете агрегатор прокси, типа freeproxy.ru, цепляетесь к их API для получения списка прокси, получаете список прокси, берете первый попавшийся из списка, пробуете через него загрузить контент. Если не удалось, удаляете прокси из списка, пробуете следующий.
Раз в N минут обновляете список прокси.
Анонимные прокси (я вижу, что вы пытаетесь гуглить через анонимные прокси) штука такая, что никто не гарантирует их работоспособность.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы