Bonjour à tous,
je recherche un moyen d'afficher le code source d'une page HTTPs,
Est ce possible?
Les données s'affichent bien dans le navigateur, on peut donc les récupérer?
Merci![]()
Bonjour à tous,
je recherche un moyen d'afficher le code source d'une page HTTPs,
Est ce possible?
Les données s'affichent bien dans le navigateur, on peut donc les récupérer?
Merci![]()
Une "page HTTPS", ça veut rien dire... c'est une page HTML, HTTPS c'est juste le protocole par lequel elle a été transmise. Utilise la classe WebClient ou HttpWebRequest, comme en HTTP
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
oui désolé pour les erreurs
je veux récupérer le code source d'une page html accessible par le protocole Https
en fait j'ai essayé httpwebrequest qui ne fonctionne pas,
je récupère seulement ceci :
Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <html> <head> <script language="javascript"> function setTop(){top.location="/index.htm"} </script> <title>...</title> </head> <body onLoad="setTop()"> </body> </html>
je doute qu'on puisse parvenir à récupérer les informations par cette méthode, de plus il faut pouvoir se logger pour accéder à la page dont j'ai besoin
Comment tu as fait exactement ? fais voir ton code
Comment tu te log sur le site en question ? Si c'est une authentification HTTP basique, il suffit de définir la propriété Credentials du HttpWebRequest. Sinon, il faut sans doute que tu transmettes un cookie...
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
Merci pour ton message.
voici mon code (C++):
Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 HttpWebRequest ^ HttpWRequest = safe_cast<HttpWebRequest ^>(WebRequest::Create(AdresseduSiteenHTTPS)); HttpWRequest->CachePolicy = gcnew Cache::HttpRequestCachePolicy(Cache::HttpRequestCacheLevel::Reload); HttpWResponse = safe_cast<HttpWebResponse^>(HttpWRequest->GetResponse()); sr = gcnew StreamReader(HttpWResponse->GetResponseStream()); tex= sr->ReadToEnd();
c'est un code que j'ai récupérer sur la FAQ de nico pyright c++/cli
dans tex je récupére habituellement le contenu de la page. là je ne donne pas de login ni de mdp donc c'est normal que ca marche pas. je ne sais pas comment faire pour lui donner.
Je vais sur le site en HTTP je me log (login mdp) et le site passe automatiquement en HTTPS.Comment tu te log sur le site en question ?
je suis un peu perdu avec ce credential. Comment l'intégrer dans mon code?
merci
A++
OK, donc c'est une authentification par formulaire... ça complique un peu les choses
La propriété Credential ne peut pas être utilisée dans ce cas, c'est limité aux types d'authentification suivants : Digest, Negotiate, Kerberos, NTLM, et Basic (d'après MSDN).
Donc en gros il faudrait que tu "simules" l'envoi du formulaire de login au site avec le user/password qui vont bien, et que tu récupères le cookie de la réponse. Ensuite il suffit de renvoyer le cookie dans les requêtes suivantes pour être considéré comme authentifié.
Mais bon, tout ça c'est assez théorique, et dans la pratique c'est pas toujours très simple de poster le formulaire de login autrement que par le navigateur, car il y a souvent un "préencodage" du mot de passe en javascript avant l'envoi (c'est le cas pour le login du forum par exemple). Bref... il faudrait savoir exactement comment le site gère le login, pour reproduire le comportement du navigateur.
Donc, à moins que le système de login soit très simple, je te souhaite bien du courage
A tout hasard tu peux tenter ça :
Mais je doute que ça fonctionne...
Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part HttpWRequest->Credentials = gcnew NetworkCredentials("username", "password");
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
OK merci pour ta réponse rapide
oui c'est un formulaire, à remplir sur la page et à valider
Bon c'est au dessus de mon niveau mon niveau et ça serait trop long à faire
je vais tenter ta proposition
Merci et bonne continuation !
Il y a aussi une possiblité avec le flag INTERNET_FLAG_SECURE de l'api HttpOpenRequest.
Mais là c'est pareil je connais pas du tout
A++
Partager