IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

HttpWebRequest POST + Progress


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 17
    Par défaut HttpWebRequest POST + Progress
    Bonjour,
    je fait un programme C# ou je doit effectuer un POST et uploader des fichiers d'environs ~30mo.

    Je peut envoyer les fichiers sans problèmes, sauf que je suis incapable de tracker la progression réel de l'upload. Tout ce que je suis capable de faire c'est d'écrire dans le stream, il affichera une progression de 0-100% pratiquement instantané et déclenchera ensuite le transfer a l'appel de GetResponse(), ce n'est évidemment par ce que je veut.

    Merci d'avance à ceux qui pourront m'aider.

    ---

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create("mon_address_pour_le_post");
                request.Method = "POST";
                request.ContentType = "text/plain";
                //request.AllowWriteStreamBuffering = false;
                //request.ServicePoint.Expect100Continue = false;
                //request.SendChunked = true;
     
                request.Timeout = -1;
     
                FileInfo fileInfo = new FileInfo(@"C:\mon_fichier");
     
                request.ContentLength = fileInfo.Length;
     
                int segments = Convert.ToInt32(fileInfo.Length / (1024 * 4));
     
                using (FileStream fileStream = fileInfo.OpenRead())
                {
                    byte[] tempBuffer = new byte[1024 * 4];
                    int bytesRead = 0;
     
                    int segment = 0;
                    using (Stream requestStream = request.GetRequestStream())
                    {
                        while ((bytesRead = fileStream.Read(tempBuffer, 0, tempBuffer.Length)) > 0)
                        {
                            requestStream.Write(tempBuffer, 0, bytesRead);
     
                            segment++;
     
                            Console.WriteLine("{0} - Progress: {1} %", segment, ((segment * 100.0) / segments));
                        }
                    }
                }
     
                using (WebResponse response = request.GetResponse())
                {
                   //
                }

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Août 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 17
    Par défaut
    Okay, je vient de figurer que de garder 'Fiddler' ouvert causais le problème.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. HttpWebRequest POST et timeout
    Par dharkan dans le forum C#
    Réponses: 2
    Dernier message: 14/05/2013, 12h26
  2. HttpWebRequest Post Asynchrone
    Par l3st4t dans le forum C#
    Réponses: 2
    Dernier message: 18/04/2012, 16h24
  3. Réponses: 1
    Dernier message: 17/12/2008, 15h15
  4. Réponses: 5
    Dernier message: 17/09/2008, 15h56
  5. Réponses: 1
    Dernier message: 30/07/2007, 18h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo