Download Automatisé

Messages postés
68
Date d'inscription
jeudi 5 janvier 2006
Statut
Membre
Dernière intervention
23 février 2011
- - Dernière réponse : NightlyDev
Messages postés
26
Date d'inscription
jeudi 24 février 2011
Statut
Membre
Dernière intervention
6 mars 2011
- 25 févr. 2011 à 00:10
Bonjour,

J'aurait besoin de télécharger un fichier automatiquement dans mon application. Ce fichier est un catalogue sous forme de fichier texte. Avant je le récupérais facilement car j'avais accès a l'url du fichier.
Mais le site, à partir du quel je récupère mon fichier, à modifié son code source.

Le téléchargement du catalogue se fait à partir d'une page qui le lance automatiquement. Vous savez c'est les pages avec un lien si le téléchargement ne s'est pas lancé au bout de 5 secondes cliquez ici.

Du coup je n'ai plus accès a l'url du fichier.

Voici mon code pour l'instant :

WebBrowser web = new System.Windows.Forms.WebBrowser();
web.Url = new Uri(url_de_la_page_de_telechargement_du_fichier);
while (this.web.ReadyState != WebBrowserReadyState.Complete)
{
Application.DoEvents(); // Empêche la forme de freezer.
}
try
{
//Remplissage des champs identifiant et mot de passe
HtmlElement login = web.Document.GetElementById("email");
HtmlElement pass = web.Document.GetElementById("passwd");
login.InnerText = "identifiant";
pass.InnerText = "motdepasse";
//Clique sur le bouton OK pour faire la connexion
HtmlElement btn = web.Document.GetElementById("SubmitLogin");
btn.InvokeMember("click");
}

Au bout de 5 secondes j'ai la fenêtre internet explorer de téléchargement qui me propose enregistrer ouvrir ou annuler.

Il y a t il un moyen pour que le téléchargement se lance sans cette fenêtre?

Merci d'avance.
Afficher la suite 

2 réponses

Messages postés
68
Date d'inscription
jeudi 5 janvier 2006
Statut
Membre
Dernière intervention
23 février 2011
0
Merci
up
Commenter la réponse de wald39
Messages postés
26
Date d'inscription
jeudi 24 février 2011
Statut
Membre
Dernière intervention
6 mars 2011
0
Merci
Oula.
Déjà, pourquoi tu n'utilises pas les thread plutôt que Application.DoEvents(); ?
Ensuite, je pense qu'il faut que tu utilises une requête web qui envoie des données (POST) au serveur web.
Il y a une petite librairie (pas complete) sur mon site. Tu peux regarder, et la compléter si tu y arrives !
Sinon essaye avec WebClient.

Bonne chance !
Commenter la réponse de NightlyDev