Page 1 sur 1

Recevoir les données HTTP au format XML

Posté : 15 août 2010, 16:49
par ferv21
Bonjour
J'essaye actuellement de modifier l'entête HTTP avec la librairie CURL pour recevoir des données bien structuré au format XML.
Mais je ne reçois pas de flux xml à part la réponse du serveur:
HTTP/1.1 100 Continue HTTP/1.1 200 OK Date: Sun, 15 Aug 2010 14:54:13 GMT Server: Apache Set-Cookie: PHPSESSID=e88ad4c2d0a0dbb9ceaee7ea79e12973; path=/ Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Vary: Accept-Encoding Content-Length: 0 Connection: close Content-Type: text/html; charset=utf-8 http://uni19.ogame.fr/game/reg/login2.php

Voici mon code:
  public function auth(){
        curl_setopt($this->session, CURLOPT_HEADER         , 1);
        curl_setopt($this->session, CURLOPT_URL            , $this->site);
        curl_setopt($this->session, CURLOPT_POST           , true);
        curl_setopt($this->session, CURLOPT_POSTFIELDS     , $this->identification);
        curl_setopt($this->session, CURLOPT_COOKIEJAR      , realpath('cookie.txt'));
        curl_setopt($this->session, CURLOPT_COOKIESESSION  , true);
        curl_setopt($this->session, CURLOPT_FOLLOWLOCATION , true); 
        curl_setopt($this->session, CURLOPT_RETURNTRANSFER , true); 
        curl_setopt($this->session, CURLOPT_HTTPHEADER     , Array("Content-Type:application/xml")); 
    }
Array("Content-Type:application/xml")); 
Le content type est toujours text/html ... la modification de l'entête n'a rien donnée.
Merci

Re: Recevoir les données HTTP au format XML

Posté : 15 août 2010, 17:14
par stealth35
ca marche pas comme ca, tu va utiliser qu'elle extension XML derrière ?

Re: Recevoir les données HTTP au format XML

Posté : 15 août 2010, 19:52
par ferv21
Heuu pour l'instant je me suis simplement logué sur le site ogame, en envoyant les données avec la méthode POST rien de plus ...

index.php
require_once 'ogame.php';

$bot                 = new Ogame ();
$bot->site           = 'xxxxxxxxxxxxxx';
$bot->identification = array(
             'v'           => xxx,
             'is_utf8'   => xxxx,
             'uni_url'   =>'xxxxxxxxxxxxxx',
             'login'      =>'xxxx',
             'pass'      =>'xxxx,);
$bot->startCurl();
$bot->auth();
echo htmlentities($bot->execute());
$bot->end();
ogame.php
<?php

/**
 * @author def
 * @copyright 2010
 */
 
 class Ogame{
    public 
    $site            = '',
    $identification  = '';
   
    private $session = '',
            $data    = '';
    
    
    public function __construct(){

        
    }
    
    public function startCurl(){
        $this->session = curl_init();       
    }
    
    public function auth(){
        
        curl_setopt($this->session, CURLOPT_HEADER              ,1);
        curl_setopt($this->session, CURLOPT_URL                    ,$this->site);
        curl_setopt($this->session, CURLOPT_POST                  ,true);
        curl_setopt($this->session, CURLOPT_POSTFIELDS        ,$this->identification);
        curl_setopt($this->session, CURLOPT_COOKIEJAR          ,realpath('cookie.txt'));
        curl_setopt($this->session, CURLOPT_COOKIESESSION   ,true);
        curl_setopt($this->session, CURLOPT_FOLLOWLOCATION ,true); 
        curl_setopt($this->session, CURLOPT_RETURNTRANSFER ,true); 
        curl_setopt($this->session, CURLOPT_HTTPHEADER       , Array("Content-Type:application/xml")); 
    }
    
    
    public function execute(){
         $this->data = curl_exec($this->session); 
         return $this->data;
    }

    public function getCurrentUrl(){
        $info               = curl_getinfo($this->session);
        $this->url          = $info['url'];
        return $this->url;
    }
   
    
    public function end(){
        curl_close($this->session);
    }
   
    
 }

?>

Re: Recevoir les données HTTP au format XML

Posté : 15 août 2010, 20:11
par stealth35
ensuite ? tu veux faire quoi derrière ? :wink:

Re: Recevoir les données HTTP au format XML

Posté : 15 août 2010, 20:17
par ferv21
Dans un premier temps je veux récupérer les données $data de la fonction curl_exec en format xml, puis ensuite traité ces informations et choisir une action approprié en fonction des données. Je voudrais par la suite automatiser la tâche, tu l'a deviner de tout de façon. :mrgreen:
J'aimerais savoir si c'est possible de récupérer en format xml ...
Merci

Re: Recevoir les données HTTP au format XML

Posté : 15 août 2010, 20:38
par stealth35
ca dépend du doctype de ta page sois xhtml = xml, html = dom
avec DomDocument il gere les 2 donc pas de soucis
avec SimpleXML il faut convertir de DOM en XML (via DomDocument et simplexml_import_dom)

Re: Recevoir les données HTTP au format XML

Posté : 15 août 2010, 20:44
par ferv21
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

+1 merci de ta réponse rapide :P