Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Extensions > Zend запрос через не стабильный прокси


Автор: taral 26.3.2014, 18:23
Пробую настроить запросы на сервер через прокси. Использую библиотеку 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 попыток выполнить запрос. Это в принципе то что мне нужно. Но мне не нравится каким образом я достиг этого решения. Я думаю что должно быть что то более изящное. Спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)