EventHttpConnection::makeRequest

(PECL event >= 1.4.0-beta)

EventHttpConnection::makeRequest — Делает HTTP-запрос по указанному соединению

Описание

public EventHttpConnection::makeRequest ( EventHttpRequest $req , int $type , string $uri ) : bool

Делает HTTP-запрос по указанному соединению. type одна из констант EventHttpRequest::CMD_* .

Список параметров

req

Объект подключения, через который отправляется запрос.

type

одна из констант EventHttpRequest::CMD_* .

uri

URI, связанный с запросом.

Возвращаемые значения

Возвращает true в случае успешного выполнения, false в противном случае.

Примеры

Пример #1 Пример использования EventHttpConnection::makeRequest()

<?php
function _request_handler($req, $base) {
    echo 
__FUNCTION__, PHP_EOL;

    if (
is_null($req)) {
        echo 
"Время вышло\n";
    } else {
        
$response_code = $req->getResponseCode();

        if (
$response_code == 0) {
            echo 
"Соединение разорвано\n";
        } elseif (
$response_code != 200) {
            echo 
"Неожиданный ответ: $response_code\n";
        } else {
            echo 
"Успешно: $response_code\n";
            
$buf = $req->getInputBuffer();
            echo 
"Тело ответа:\n";
            while (
$s = $buf->readLine(EventBuffer::EOL_ANY)) {
                echo 
$s, PHP_EOL;
            }
        }
    }

    
$base->exit(NULL);
}

$address = "127.0.0.1";
$port = 80;

$base = new EventBase();
$conn = new EventHttpConnection($base, NULL, $address, $port);
$conn->setTimeout(5);
$req = new EventHttpRequest("_request_handler", $base);

$req->addHeader("Host", $address, EventHttpRequest::OUTPUT_HEADER);
$req->addHeader("Content-Length", "0", EventHttpRequest::OUTPUT_HEADER);
$conn->makeRequest($req, EventHttpRequest::CMD_GET, "/index.cphp");

$base->loop();
?>

Результатом выполнения данного примера будет что-то подобное:

_request_handler
Success: 200
Body:
PHP, date:
2013-03-13T20:27:52+05:00

Смотрите также