Utilisation de HttpWebRequest avec la méthode POST Code : C++.net
zebulon88
Messages postés32Date d'inscriptionjeudi 5 juin 2008StatutMembreDernière intervention 4 mai 2011
-
26 févr. 2009 à 20:07
zebulon88
Messages postés32Date d'inscriptionjeudi 5 juin 2008StatutMembreDernière intervention 4 mai 2011
-
2 mars 2009 à 10:25
Bonjour,
Je cherche depuis pas mal de temps à récupérer automatiquement des
fichiers txt sur un site pour m'éviter d'aller dessus tous les
jours.
Pour récupérer ces données, il faut remplir un formulaire sur le site (avec des checkbox etc.), j'aimerais automatiser cela.
J'ai isolé la requete HTTP, qui est une méthode POST, que je dois envoyer au site.
Je ne sais pas comment utiliser HttpWebRequest pour récupérer mes fichiers txt.
En effet, la méthode POST intègre mes paramètres de fichiers dans
le corps du paquet. Comment intégrer les paramètres dont le serveur a
besoin pour me retourner une réponse ?
zebulon88
Messages postés32Date d'inscriptionjeudi 5 juin 2008StatutMembreDernière intervention 4 mai 2011 27 févr. 2009 à 10:32
Merci pour ton message
voici un code que j'ai trouvé sur un autre site et modifié. Ce code permet à la base de télécharger le code source de la page Web, mais je dois télécharger le fichier txt que me renvoit le serveur. Avec wireshark (ethereal), on voit bien le fichier txt en retour transiter en TCP.. J'ai intercepter la requete HTTP à envoyer, mais comment l'intégrer dans HttpWebRequest...
HttpWebResponse ^HttpWResponse;
StreamReader ^sr;
String^ tex;
try
{
HttpWebRequest ^ HttpWRequest = safe_cast<HttpWebRequest ^>(WebRequest::Create("http://monsite.com/donneesblabla.aspx"));
HttpWRequest->CachePolicy = gcnew Cache::HttpRequestCachePolicy(Cache::HttpRequestCacheLevel::Reload); //je sais pas à quoi ca sert...
HttpWRequest->Method= "POST";
HttpWRequest->Referer="http://monsite.com/donneesblabla.aspx";
String^ postData ="Le contenu du paquet de la requete contenant mes infos à envoyer";
ASCIIEncoding^ encoding = gcnew ASCIIEncoding;
array^ byte1 = encoding->GetBytes( postData );
HttpWRequest->ContentLength = byte1->Length;
HttpWResponse = safe_cast<HttpWebResponse^>(HttpWRequest->GetResponse()); //Le programme reste bloqué ici, il y a une connection et c'est tout
sr = gcnew StreamReader(HttpWResponse->GetResponseStream());
//richTextBox1->Text= sr->ReadToEnd();
tex= sr->ReadToEnd();
}
catch (Exception ^ex)
{
Console::WriteLine(ex->Message);
}
finally
{
if (HttpWResponse != nullptr)
HttpWResponse->Close();
if (sr != nullptr)
sr->Close();
}
je ne sais pas comment intégrer mon postdata dans la requete.
zebulon88
Messages postés32Date d'inscriptionjeudi 5 juin 2008StatutMembreDernière intervention 4 mai 2011 2 mars 2009 à 10:25
Salut
Merci.
Finalement j'ai trouvé un moyen plus simple de faire (j'ai simplement trouvé un site qui me donne un lien direct aux données que je recherchais). et le HttpWebRequest fonctionne