Home page / PHP Tips'n'tricks

HttpRequest e HttpResponse

Inviare richieste HTTP di tipo GET/POST, inviare files in Upload, parsare la risposta del server.

Senza usare la curl, con due classettine si possono fare con semplicita' molte cose:

  • Inviare HttpRequest ad un determinato server con GET/POST e imulazione di Files in upload (letti dal disco della macchina inviante) 
  • Trapparsi la response gia' parsata e divisa in:
    • Code (200, 404 ...)
    • Headers (array associativo tipo [content-type] => "text/html" ecc..
    • Body l' html come stringa di testo

Utilizzo:

Creazione di una semplice richiesta 

    $myRequest = new HttpRequest();
    
$myRequest->host                             'www.tuosito.it';
    
$myRequest->server                             gethostbyname($myRequest->host); // ci pensa il DNS
    
$myRequest->target                             '/index.php';
    
$myRequest->method                             'GET';

Aggiunta di variabili:

    $myRequest->vars['nomevar1'] = 'valorevariabile1';

    $myRequest->vars['nomevar2'] = 'valorevariabile2';

Aggiunta di cookies:

    $myRequest->cookies['PHPSESSID'] = '2gae1yuqw6whdinmalpetw83mfd37ia9';

    $myRequest->cookies['Expire'] = '19700101';

Aggiunta di files in upload:

    $myRequest->files['varname1'] = array(

                                                             'fname' => '/local/path/to/file.txt',

                                                             'ctype' => 'text/plain'

                                                           );

    $myRequest->files['varname2'] = array(

                                                             'fname' => '/local/path/to/file.png',

                                                             'ctype' => 'image/png'

                                                           );


 

Inizializzazione e invio: 

    if(!$myRequest->Init()) die($myRequest->err);
    if(!
$myRequest->Send()) die($myRequest->err);

 

Una volta inviata la richiesta http, l'oggetto risposta di classe HttpResponse, diventa disponibile (salvo errori) nell' membro response dell' oggetto $myRequest (utilizzato per la richiesta)

 

$myRequest->response->code; // il codice di risposta (200, 404 ecc..)

$myRequest->response->headers['set-cookie']; // il cookie

$myRequest->response->headers['location']; // qui c'e' un redirect

$myRequest->response->body; // il testo puro (senza headers

 

 

Le classi:


HttpRequest
HttpResponse

Autore: #ffffff (09-02-2007 00:00:00)

07-01-2009 - PM 02:19