Forum de la communauté SFML

Aide => Réseau => Discussion démarrée par: TheSamFrom1984 le Juillet 28, 2013, 08:07:54 pm

Titre: [Résolu]InvalidResponse (1000) sur requêtes HTTPS
Posté par: TheSamFrom1984 le Juillet 28, 2013, 08:07:54 pm
Bonjour,

Y a-t-il quechose de spécial à ajouter pour que le HTTPS fonctionne par rapport au HTTP ?
Mon code fonctionne très bien sur n'importe quel site en HTTP, mais lorsque je modifie "http" en "https" (sur les sites qui supportent les deux, comme google), j'obtiens le code 1000 (InvalidResponse).

Voilà une appli minimale mais complète pour test :
#include <iostream>
#include "SFML/Network.hpp"


int main(int argc, const char* argv[])
{
        if (argc < 2)
    {
        return 0;
    }

    sf::Http client(argv[1]);
    sf::Http::Request Request;
    Request.setUri("/");

    sf::Http::Response Response = client.sendRequest(Request);
    sf::Http::Response::Status Status = Response.getStatus();
    std::string Body = Response.getBody();

    std::cout << "Status = " << Status << std::endl;
    std::cout << "Body = " << Body.substr(0, 50) << "...";

    return 0;
}

 

Et ce que ça donne en sortie :

Citer
>Test.exe http://www.google.fr
Status = 200
Body = <!doctype html><html itemscope="itemscope" itemtyp...

>Test.exe https://www.google.fr
Status = 1000
Body = ...

>Test.exe http://www.youtube.com
Status = 200
Body =     <!DOCTYPE html><html lang="fr" data-cast-api-e...

>Test.exe https://www.youtube.com
Status = 1000
Body = ...

Une idée ?
Je bloque là-dessus depuis des heures alors que ce doit être vraiment stupide !
J'utilise SFML 2.1 sous Windows 8 et je compile avec VS2012.
Merci d'avance.
Titre: Re : InvalidResponse (1000) sur requêtes HTTPS
Posté par: Laurent le Juillet 28, 2013, 08:34:50 pm
En fait le support de HTTPS n'est pas implémenté dans SFML.
Titre: Re : InvalidResponse (1000) sur requêtes HTTPS
Posté par: TheSamFrom1984 le Juillet 28, 2013, 08:45:25 pm
Ah, tout simplement ? Merci pour la réponse rapide.

J'étais tombé sur un tutoriel qui disait le contraire (c'était pour la 1.6) et dans la documentation il est question de HTTPS ("HTTP client will use the right port according to the protocol used (80 for HTTP, 443 for HTTPS)"). En plus, sur stackoverflow quelqu'un disait que ça fonctionnait bien (toujours en 1.6).

=> Est-ce que ça fonctionnait en 1.6 ? Je vais essayer.
J'ai juste besoin d'une petite librairie très simple qui supporte le HTTPS car je dois utiliser une API REST qui ne propose QUE le https (j'ai déjà testé libcurl et cpp-netlib), enfin ça sort du cadre de ce forum mais bon...
Titre: Re : InvalidResponse (1000) sur requêtes HTTPS
Posté par: Laurent le Juillet 28, 2013, 08:56:16 pm
Non ça n'a jamais été implémenté. HTTPS, c'est du HTTP sur une socket sécurisée, donc chiffrée. Il faut aussi une gestion des certificats. Bref c'est beaucoup de boulot, il faudrait une lib externe.
Titre: Re : InvalidResponse (1000) sur requêtes HTTPS
Posté par: TheSamFrom1984 le Juillet 28, 2013, 09:03:51 pm
Oui je comprends bien.
Merci quand même  :)
Titre: Re : [Résolu]InvalidResponse (1000) sur requêtes HTTPS
Posté par: Lolilolight le Juillet 30, 2013, 08:57:01 am
Je sais comment fonctionne le chiffrement mais ce système de certificat je ne sais pas du tout ce que c'est.


Titre: Re : [Résolu]InvalidResponse (1000) sur requêtes HTTPS
Posté par: Laurent le Juillet 30, 2013, 09:12:03 am
http://lmgtfy.com/?q=https+certificat
Titre: Re : [Résolu]InvalidResponse (1000) sur requêtes HTTPS
Posté par: Lolilolight le Juillet 30, 2013, 09:40:41 pm
C'est beau.  ;D