EventHttpConnection::makeRequest

(PECL event >= 1.4.0-beta)

EventHttpConnection::makeRequest — Effectue une requĂȘte HTTP sur la connexion spĂ©cifiĂ©e

Description

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

Effectue une requĂȘte HTTP sur la connexion spĂ©cifiĂ©e. Le paramĂštre type sera une constante EventHttpRequest::CMD_*.

Liste de paramĂštres

req

L'objet reprĂ©sentant la connexion sur laquelle la requĂȘte sera envoyĂ©e.

type

Une constante EventHttpRequest::CMD_*.

uri

L'URI associĂ© Ă  la requĂȘte.

Valeurs de retour

Cette fonction retourne true en cas de succĂšs ou false si une erreur survient.

Exemples

Exemple #1 Exemple avec EventHttpConnection::makeRequest()

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

    if (is_null($req)) {
        echo "Délai d'attente maximal atteint\n";
    } else {
        $response_code = $req->getResponseCode();

        if ($response_code == 0) {
            echo "Connexion refusée\n";
        } elseif ($response_code != 200) {
            echo "Réponse inattendue : $response_code\n";
        } else {
            echo "SuccĂšs : $response_code\n";
            $buf = $req->getInputBuffer();
            echo "Corps :\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();
?>

Résultat de l'exemple ci-dessus est similaire à :

_request_handler
SuccĂšs : 200
Corps :
PHP, date:
2013-03-13T20:27:52+05:00

Voir aussi

add a note

User Contributed Notes

There are no user contributed notes for this page.