Afficher page web : QTcpSocket

Résolu
Chihaya Messages postés 174 Statut Membre -  
Chihaya Messages postés 174 Statut Membre -
Bonjour,
je souhaite afficher une page web dans mon navigateur. Pour se faire, je vais sur le liens qui me connecte au QTcpServer : localhost:1234/index.html
Je suis donc un QTcpSocket connecté au serveur.
Mon server reçoit la requête GET /index.html.....
Je traite la requête pour récupérer le chemin du fichier index.html puis j'écris dans un QString le contenu de mon .html, et j'envoie mon QString au client (socket->write(html.toLocal8bit()).
Le truc c'est que sur mon navigateur ça m'affiche le contenue du fichier sous format texte, et je voudrais voir la page web.
Avez-vous une idée de comment procéder?
Merci

1 réponse

  1. Chihaya Messages postés 174 Statut Membre 8
     
    Bon, apparemment personne ne connaissait la réponse, j'ai fini par trouver, il suffisait d'ajouter un header avant le contenue du .html
    j'ai donc ajouté :

    QString cSocket::resHead(){
        QString http ="HTTP/1.1 200 OK\n";
        QString date =QDateTime::currentDateTime().toString("yyyy.MM.dd")+"\n";
        QString serveur ="Server: localhost\n";
        QString type ="Content-Type: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8; charset=UTF-8";
        QString enc ="Content-Encoding: deflate\n";
        QString user="User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:26.0) Gecko/20100101 Firefox/26.0";
        return http+date+serveur+user+type+enc;
    }

    et
    QString html = resHead()+in.readAll();
    

    Je ne sais pas si je l'ai fait correctement, mais en tout cas ça à l'air de fonctionner
    1