Afficher page web : QTcpSocket

Résolu/Fermé
Chihaya Messages postés 144 Date d'inscription samedi 22 juin 2013 Statut Membre Dernière intervention 23 février 2021 - 16 juin 2015 à 11:44
Chihaya Messages postés 144 Date d'inscription samedi 22 juin 2013 Statut Membre Dernière intervention 23 février 2021 - 17 juin 2015 à 08:39
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
A voir également:

1 réponse

Chihaya Messages postés 144 Date d'inscription samedi 22 juin 2013 Statut Membre Dernière intervention 23 février 2021 8
Modifié par Chihaya le 17/06/2015 à 08:40
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