Comment utiliser HttpWebRequest pour télécharger le ficher
Essayez de télécharger le fichier dans le code.
Code actuel:
Dim uri As New UriBuilder
uri.UserName = "xxx"
uri.Password = "xxx"
uri.Host = "xxx"
uri.Path = "xxx.aspx?q=65"
Dim request As HttpWebRequest = DirectCast(WebRequest.Create(uri.Uri), HttpWebRequest)
request.AllowAutoRedirect = True
request = DirectCast(WebRequest.Create(DownloadUrlIn), HttpWebRequest)
request.Timeout = 10000
'request.AllowWriteStreamBuffering = True
Dim response As HttpWebResponse = Nothing
response = DirectCast(request.GetResponse(), HttpWebResponse)
Dim s As Stream = response.GetResponseStream()
'Write to disk
Dim fs As New FileStream("c:\xxx.pdf", FileMode.Create)
Dim read As Byte() = New Byte(255) {}
Dim count As Integer = s.Read(read, 0, read.Length)
While count > 0
fs.Write(read, 0, count)
count = s.Read(read, 0, read.Length)
End While
'Close everything
fs.Close()
s.Close()
response.Close()
L'exécution de ce code et de la vérification de la réponse.ResponseUri indique je suis redirigé vers la page de connexion et de ne pas le fichier pdf.
Pour quelque raison, elle n'autorisant l'accès qu'aurais-je pu manquer comme Im l'envoi du nom d'utilisateur et le mot de passe dans l'uri? Merci pour votre aide
- La page de fait, permettre d'autorisation via l'url? Ou avez-vous besoin d'autoriser via une interface web qui définit un cookie? Im deviner le, plus tard, dans ce cas, vous devrez effectuer 2 demandes, 1 pour la connexion et de stocker le cookie, la seconde à la demande de la pdf (à l'aide du cookie)
- Le code m'a donné un bon départ pour réaliser mon téléchargement. Merci s'accoupler
Vous devez vous connecter pour publier un commentaire.
Vous n'avez pas besoin de ce code pour télécharger un fichier à partir du net
utilisez simplement le WebClient classe et de son DownloadFile méthode
vous devez vérifier pour voir si le site requiert des cookies (la plupart le font), j'aimerais utiliser un analyseur de paquets et exécuter votre code et de voir exactement ce que le serveur est de retour. utiliser fiddler ou http analyzer pour enregistrer les paquets
Avec UWP, c'est devenu une question plus pertinente que UWP ne dispose pas d'un
WebClient
. La réponse correcte à cette question est de savoir si vous allez être redirigé vers la page de connexion, puis il doit y avoir un problème avec vos informations d'identification OU la création (ou l'absence) de la tête pour leHttpWebRequest
.Selon Microsoft, la demande pour le téléchargement est envoyé avec l'appel à
GetResponse()
sur leHttpWebRequest
, donc le fichier téléchargé DOIT être dans le flux de la réponse (renvoyé par laGetResponse()
appel mentionné ci-dessus).