Как получить полный Zend_Http_Client GET URI? - PullRequest
2 голосов
/ 07 февраля 2012

У меня есть что-то вроде этого:

    $client = new Zend_Http_Client('http://www.site.com');
    $client->setParameterGet(array(
        'platform'     => $platform,
        'clientId'     => $clientId,
        'deploymentId' => $deploymentId,
    ));

    try {
        $response = $client->request();
        ...

Это сгенерирует запрос, похожий на 'http://www.site.com/?plataform=..?clientid?..'. Есть ли способ, которым я мог бы получить этот полный URL-адрес, сгенерированный этим GET-запросом?С уважением,

1 Ответ

1 голос
/ 07 февраля 2012

Удивительно, но прямого метода для получения полной строки запроса не существует.НО

  1. После выполнения запроса вы можете проверить $ client-> getLastRequest ().
  2. Если вам нужно знать, что такое? Plataform = ..? Clientid?часть запроса есть трюк.

function getClientUrl (Zend_Http_Client $client)
{
    try
    {
        $c = clone $client;
        /*
         * Assume there is nothing on 80 port.
         */
        $c->setUri ('http://127.0.0.1');

        $c->getAdapter ()
            ->setConfig (array (
            'timeout' => 0
        ));

        $c->request ();
    }
    catch (Exception $e)
    {
        $string = $c->getLastRequest ();
        $string = substr ($string, 4, strpos ($string, "HTTP/1.1\r\n") - 5);
    }
    return $client->getUri (true) . $string;
}

$client = new Zend_Http_Client ('http://yahoo.com');
$client->setParameterGet ('q', 'search string');

echo getClientUrl ($client);
...