Vb net + webclient [Résolu]

lediablo 215 Messages postés mercredi 26 avril 2006Date d'inscription 2 août 2012 Dernière intervention - 29 juil. 2012 à 09:27 - Dernière réponse : lediablo 215 Messages postés mercredi 26 avril 2006Date d'inscription 2 août 2012 Dernière intervention
- 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
Utilisateur anonyme - 1 août 2012 à 17:00
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

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 117 internautes ce mois-ci

Commenter la réponse de Utilisateur anonyme
Utilisateur anonyme - 1 août 2012 à 14:53
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
lediablo 215 Messages postés mercredi 26 avril 2006Date d'inscription 2 août 2012 Dernière intervention - 2 août 2012 à 04:59
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
lediablo 215 Messages postés mercredi 26 avril 2006Date d'inscription 2 août 2012 Dernière intervention - 2 août 2012 à 05:01
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.