2011-12-12 6 views
1

J'essaie de télécharger le fichier en utilisant webbrowser class.i pourrait se connecter et naviguer plus loin en utilisant webbrowser.connexion automatique et téléchargement de fichier

mais le fichier se trouve sur le site Web en utilisant javascript.

J'ai essayé d'obtenir le fichier en utilisant HttpWebRequest(fileurl) en utilisant des cookies de webbrowser.

le code pour télécharger le fichier après la connexion est comme ci-dessous.

string myUri = @"url_of_file"; 
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(myUri); 
request.CookieContainer = new CookieContainer(); 
foreach (string cookie in webBrowser1.Document.Cookie.Split(';')) 
{ 
    string name = cookie.Split('=')[0]; 
    string value = cookie.Substring(name.Length + 1); 
    string path1 = "/"; 
    string domain = ".abcde.com"; //change to your domain name 

    request.CookieContainer.Add(new Cookie(name.Trim(), value.Trim(), path1, domain)); 
} 

WebResponse res = request.GetResponse();  

StreamReader sReader = new StreamReader(res.GetResponseStream()); 
StreamWriter sWriter = new StreamWriter(@"D:\file.csv"); 

while (sReader.Peek() >= 0) 
sWriter.WriteLine(sReader.ReadLine()); 

sWriter.Close(); 

mais le flux de Reponse n'a pas le fichier à la place, il a le « url_of_file » dans les body.as html ci-dessous.

<html><head></head> 
<body onload="this.location.href='/Marketinfo/SubViewSubscriptionFile?product_code=DOL_INT&amp;file_id=460916&amp;subscription_id=318342&amp;loadnow=true'"> 
</body></html>   

S'il vous plaît quelqu'un suggérer ce qui ne va pas dans ce

Répondre

0

L'étape suivante consiste à usurper le serveur en utilisant les cookies existants ainsi que l'ajout de tous les en-têtes HTTP le serveur attend.
Si vous souhaitez avoir une vue complète de l'arrière-plan dans les demandes et les réponses, ouvrez un navigateur Chrome, appuyez sur Ctrl + Maj + I pour ouvrir les outils de développement, sélectionnez l'onglet Réseau et répétez le processus en tant qu'utilisateur unique. En cliquant sur les fichiers dans la colonne Nom, vous obtiendrez toutes les informations relatives aux demandes et aux réponses. L'avantage est que vous aurez tout ce qui est nécessaire pour usurper totalement le serveur sans même utiliser un contrôle de navigateur Web.

+0

merci, je pourrais télécharger le fichier.since le flux de réponse avait oonload.true.i juste apended le & loadnow = true pour l'url.Il a fonctionné. – Radha

Questions connexes