2009-05-27 9 views
1

Je suis en train de télécharger un fichier sur HTTPS et je continue à courir dans un mur de briques avec des cookies et des en-têtes correctement réglés.Télécharger un fichier via HTTPS C# - Cookie et Header Prob?

Quelqu'un a-t-il/a-t-il connaissance d'un code que je peux consulter pour le faire correctement? c'est-à-dire télécharger un fichier sur https et définir des cookies/en-têtes?

Merci!

Répondre

2

Je l'ai fait l'autre jour, en résumé, vous devez créer un HttpWebRequest et HttpWepResponse pour soumettre/recevoir des données. Étant donné que vous devez gérer les cookies sur plusieurs demandes, vous devez créer un conteneur de cookies pour contenir vos cookies. Vous pouvez définir les propriétés d'en-tête sur demande/réponse en cas de besoin et ....

Concept de base:

Using System.Net; 

// Create Cookie Container (Place to store cookies during multiple requests) 

CookieContainer cookies = new CookieContainer(); 

// Request Page 
HttpWebRequest req = (HttpWebRequest)WebRequest.Create("https://www.amazon.com"); 
req.CookieContainer = cookies; 

// Response Output (Could be page, PDF, csv, etc...) 

HttpWebResponse resp= (HttpWebResponse)req.GetResponse(); 

// Add Response Cookies to Cookie Container 
// I only had to do this for the first "login" request 

cookies.Add(resp.Cookies); 

La clé de ceci est déterminer la capture du trafic de la demande réelle. Je l'ai fait en utilisant Fiddler et au cours de quelques captures (près de 10), j'ai compris ce que je devais faire pour reproduire le login sur un site où j'avais besoin de générer des rapports basés sur différents critères de sélection , etc ..) et télécharger les résultats dans des fichiers CSV. Cela fonctionne parfaitement, mais Fiddler était la clé pour le comprendre.

http://www.fiddler2.com/fiddler2/

Bonne chance.

Zach

+0

Fiddler est génial, il y a quelques getchas avec HTTPS cependant. Solution ici: http://clipperhouse.com/blog/post/WebClient-Fiddler-and-SSL.aspx –

0

Cet homme a écrit une application pour télécharger des fichiers via HTTP:

http://www.codeproject.com/KB/IP/DownloadDemo.aspx

Pas tout à fait sûr de ce que vous entendez par la définition de cookies et des en-têtes. Cela est-il requis par le site que vous téléchargez? Si c'est le cas, quels cookies et en-têtes doivent être définis?

+0

Hey Rob! :) Merci pour la réponse! J'essaie d '"automatiser" mon rapport Amazon Affiliate tous les jours - et je télécharge automatiquement les rapports, mais Amazon définit les cookies/en-têtes? –

+0

Des idées que j'apprécierais vraiment vraiment? –