Telechargement d'un fichier "besoin d'aide d'un expert"

hakoko Messages postés 190 Date d'inscription   Statut Membre Dernière intervention   -  
ElementW Messages postés 4814 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

je doit télécharger toute les 10 min un fichier d'une interface web, pour cela je dois à chaque foie remplir l'intervalle de temps, date du début et date de la fin puis cliquer sur telecharger pour avoir les données correspondante à cette interval de temps. j'ai une application sur C# qui est adapter à ce site web. quant je la lance elle ouvre cette interface web, rempli bien les cases "date de début et de la fin" à chaque instant donné, elle appuis sur le bouton téléchargement sauf que le telechargement ne se declanche pas; meme quand j'appui sur le boutton manuellement , il declanche pas le telechargement.


A voir également:

4 réponses

ElementW Messages postés 4814 Date d'inscription   Statut Contributeur Dernière intervention   1 223
 
Tout dépends de comment le site veut nous faire télécharger le fichier, enfin plutôt comment il nous redirige vers ce fichier.
De plus, si le site utilise AJAX, c'est encore pire: le WebBrowser de C#, c'est Internet Explorer inclu dans une appli, et IE c'est le mal pour le développement d'applis qui fonctionnent avec le web: il utilise sa propre version d'AJAX pas standard (Microsoft.XMLHTTP au lieu de XMLHttpRequest).

Utiliser un WebBrowser visible pour ça n'est pas la bonne idée, apprends à utiliser les HttpWebRequest comme il faut (exemple ici).

Si on avait un accès au site/la source du site on pourrait peut-être t'aider.
0
hakoko Messages postés 190 Date d'inscription   Statut Membre Dernière intervention   4
 
malheureusement moi meme j'ai un accès limité à cette interface web, elle est relié à un enregistreur de données,et il faut appartenir au même reseau de cet enregistreur pour pouvoir générer cette interface web. cependant je peut vous envoyer le code source de cette page, le fichier en html et mon application sous visual studio,
A+
0
ElementW Messages postés 4814 Date d'inscription   Statut Contributeur Dernière intervention   1 223
 
L'application ne sera pas nécessaire, mais savoir comment le code HTML et JS nous renvoie vers le fichier serait très pratique.
0
hakoko Messages postés 190 Date d'inscription   Statut Membre Dernière intervention   4
 
voici ci joint le code source et page qui permet de faire le téléchargement:
https://www.cjoint.com/?CDyl6d7JJr1
0
ElementW Messages postés 4814 Date d'inscription   Statut Contributeur Dernière intervention   1 223
 
Ce fut plus simple que je ne le pensais:
string getData(string aggregate, string start_day, string start_time, string end_day, string end_time)
{
	HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://mysite.com/download.csv");
	req.Method = "POST";
	req.ContentType = "application/x-www-form-urlencoded";
	string postData = "aggregate="+aggregate+"&start_day="+start_day+"&start_time="+start_time+"&end_day="+end_day+"&end_time="+end_time;
	req.ContentLength = postData.Length;

	StreamWriter stOut = newStreamWriter(req.GetRequestStream(),System.Text.Encoding.ASCII);
	stOut.Write(postData);
	stOut.Close();

	HttpWebResponse response = (HttpWebResponse)request.GetResponse();
	Stream responseStream = response.GetResponseStream(); 
	StreamReader streamReader = new StreamReader(responseStream);
	return streamReader.ReadToEnd();
}
aggregate peut être soit "", "day", "week", "month" ou "year", selon la période que tu veux.
Après pour le start_time, etc... tu dois comprendre je pense ;)
0
hakoko
 
Merci pour le code, je suis entrain de l'essayer,
Je croix que :
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
devrai etre
HttpWebResponse response = (HttpWebResponse)req.GetResponse();
si j'ai bien compri le code!!
0
ElementW Messages postés 4814 Date d'inscription   Statut Contributeur Dernière intervention   1 223
 
Euh oui c'est bien ça, j'ai pas testé le code donc je peut pas dire s'il marchera du premier coup mais il devrait.
0
hakoko
 
La page web est celle ci dans le serveur local: http://193.50.118.164/cgi-bin/power.cgi.
j'imagine que req doit etre :
HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://193.50.118.164/cgi-bin/download.csv"); ???
0
ElementW Messages postés 4814 Date d'inscription   Statut Contributeur Dernière intervention   1 223
 
Oui.
0
hakoko
 
ca ne marche pas avec http://193.50.118.164/cgi-bin/download.csv, l'erreur est "le délai d'attente de l'operation a expiré", il ne trouve pas le fichier je croix.
il ne devrai pas avoir un autre fichier genre http://193.50.118.164/cgi-bin/qlqchose.javascipt ou autre qui genere le "download.csv" ?
0