Vb net + webclient [Résolu]

Messages postés
215
Date d'inscription
mercredi 26 avril 2006
Dernière intervention
2 août 2012
- - Dernière réponse : lediablo
Messages postés
215
Date d'inscription
mercredi 26 avril 2006
Dernière intervention
2 août 2012
- 2 août 2012 à 05:01
bonjour

j'utilise webclient.UploadStringAsync pour récupérer des données à partir de quelques sites et je voudrais savoir s'il y a un moyen de décompresser un résultat compressé avec gzip ou deflate
j'ai cherché partout mais je ne trouve que des résultats pour httpwebrequest et pas pour webclient, je voudrais savoir si c'est possible avec webclient ou pas

merci d'avance


Quand on pose une question on est con 5 minutes,Quand on ne la pose pas on le reste toute sa vie
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
3
Merci
je voudrais savoir s'il y a un moyen de décompresser un résultat compressé avec gzip ou deflate
Je me rends compte que je n'avais pas bien lu la question.

Pour me faire pardonner, voici une solution :

Commence par ajouter les imports nécessaires :
Imports System.Net
Imports System.IO
Imports System.IO.Compression


Puis intègre la classe :

Public Class clsMonSysteme
'tu remarqueras que je fais hériter cette classe du WebClient
    Inherits WebClient

    'sub du download
    Sub Download(ByVal AdresseDistante As String, ByVal FichierDest As String)
        Me.DownloadFile(AdresseDistante, FichierDest)
    End Sub
    'sub upload
    Sub Upload(ByVal AdresseDistante As String, ByVal FichierOrigine As String)
        Me.UploadFile(IO.Path.Combine(AdresseDistante, IO.Path.GetFileName(FichierOrigine)), Nothing, FichierOrigine)
    End Sub
    
    'compression d'un fichier
    Sub Compress(ByVal FichierOrigine As String, ByVal DestFile As String)
        Dim data() As Byte = IO.File.ReadAllBytes(FichierOrigine)
        Using writer As New IO.FileStream(DestFile, IO.FileMode.OpenOrCreate)
            Dim ds As New GZipStream(writer, CompressionMode.Compress)
            ds.Write(data, 0, data.Length)
        End Using
    End Sub
    
    'décompression d'un fichier
    Sub Decompress(ByVal FichierOrigine As String, ByVal DestFile As String)
        Using writer As New IO.FileStream(DestFile, IO.FileMode.OpenOrCreate)
            Using reader As New IO.FileStream(FichierOrigine, IO.FileMode.OpenOrCreate)
                Dim ds As New GZipStream(reader, CompressionMode.Decompress)
                ds.CopyTo(writer)
            End Using
        End Using
    End Sub
End Class


Puis tu peux tester par exemple comme ceci :
'j'instancie ma classe
Dim S As New clsMonSysteme
'ici je compresse un fichier texte en gz
S.Compress("mots.txt", "mots.gz")
'fournir une adresse ftp par exemple du style puis le nom du fichier en paramètre 
S.Upload("ftp://login:pass@ftpperso.free.fr/dossier/", "mots.gz")
'pour récupérer un fichier entrer son adresse distante et le nom souhaité à la réception
S.Download("ftp://login:pass@ftpperso.free.fr/dossier/mots.gz", "n_mots.gz")
'puis on le décompresse
S.Decompress("n_mots.gz", "n_mots.txt")


En espérant que ça puisse te servir

Merci Utilisateur anonyme 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de Utilisateur anonyme
0
Merci
Bonjour,

Ta question est très vague et manque cruellement de détails.

Tu ne dis pas comment ont été compressées les données que tu souhaites télécharger et décompresser. Je te donne un peu de lecture en français sur la classe GZipStream et notamment les 'Notes'.

Le problème n'est pas de savoir s'il faut utiliser httpwebrequest ou webclient car le fichier (donc compressé) téléchargé sera le même.
Commenter la réponse de Utilisateur anonyme
Messages postés
215
Date d'inscription
mercredi 26 avril 2006
Dernière intervention
2 août 2012
0
Merci
bonjour
ahhhh je suis vraiment désolé j'ai cru avoir mis mon code ici je suis désolé, merci énormement pour votre aide banana32

voici mon code et la solution avec

Quand on pose une question on est con 5 minutes,Quand on ne la pose pas on le reste toute sa vie (mon site)
Commenter la réponse de lediablo
Messages postés
215
Date d'inscription
mercredi 26 avril 2006
Dernière intervention
2 août 2012
0
Merci
votre code ma été d'une grande aide merci beaucoup

Quand on pose une question on est con 5 minutes,Quand on ne la pose pas on le reste toute sa vie
Commenter la réponse de lediablo

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.