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 :

Erreur 400 - HTTPWebRequest


Sujet :

C#

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations forums :
    Inscription : Avril 2009
    Messages : 9
    Points : 9
    Points
    9
    Par défaut Erreur 400 - HTTPWebRequest
    Bonjour,

    Context :
    J'ai une application console qui charge un fichier et envoie le texte complet via HTTPWebRequest vers une procédure Oracle (CLOB en paramètre) via un serveur Apache en utilisant la méthode POST.

    Problème :
    Lorsque je charge un fichier de moins de 30 ko, il n'y a aucun problème, tout se déroule correctement.
    Or, au delà de cette taille, le HTTPWebRequest.GetResponse() me retourne l'erreur 400 - Demande incorrecte.

    Pouvez-vous m'aider à résoudre mon problème ?

    Code de ma procédure :
    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
    40
    41
    42
    43
    44
    string s_fichier;
       streamreader sr_fic = new streamreader(@"c:\temp\testclob.txt");
     
       s_fichier= sr_fic.readtoend();
     
       console.write(s_fichier);
     
       s_fichier = "p_clob=" + s_fichier.replace("\r\n", "||");
       s_fichier = s_fichier.replace("\n\r", "||");
       asciiencoding encoding = new asciiencoding();
       byte[] data = encoding.getbytes(s_fichier);
       httpwebrequest request = (httpwebrequest)webrequest.create(@"http://serverHTTPOracle:port/DAD/Package.procedure");
       request.timeout = int.maxvalue;
       request.method = system.net.webrequestmethods.http.post;
       //request.contenttype = "application/x-www-form-urlencoded";
       request.contenttype = "text/plain";
       request.contentlength = data.length;
       request.keepalive = true;
       request.useragent = null;
       request.allowautoredirect = false;
       request.allowwritestreambuffering = true;
       request.maximumresponseheaderslength = int.maxvalue;
       request.pipelined = true;
       request.readwritetimeout = int.maxvalue;
       //request.sendchunked = true;
     
       stream newstream = request.getrequeststream();
     
       // send the data.
       newstream.write(data, 0, data.length);
       newstream.close();
       console.write("reponse : " + request.address + " - " + request.haveresponse.tostring());
       console.read();
     
       webresponse response = request.getresponse();
     
       //newstream.close();
       //streamreader reader = new streamreader(response.getresponsestream());
       //string urltext = reader.readtoend();
       //console.write(urltext.replace("||","\n"));
       console.write("fin du traitement");
       console.read();
     
       sr_fic.close();

  2. #2
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Regarde la tête de ta requête en sortie avec Fiddler.
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations forums :
    Inscription : Avril 2009
    Messages : 9
    Points : 9
    Points
    9
    Par défaut
    Merci Skyounet mais j'ai déjà essayé de pister avec FIDDLER mais je n'arrive pas à récupérer le flux.

    D'un autre côté, je ne sais pas me servir de cette appli, le problème vient peut-être de là

  4. #4
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Citation Envoyé par clemmat Voir le message
    Merci Skyounet mais j'ai déjà essayé de pister avec FIDDLER mais je n'arrive pas à récupérer le flux.

    D'un autre côté, je ne sais pas me servir de cette appli, le problème vient peut-être de là
    Ah.

    Tu lances la bête en bas à gauche tu vérifies qu'il y ait écrit : Capturing
    Sinon tu fais F12 ou File -> Capture Traffic

    A droite de Capturing (en bas à gauche) tu spécifies quel type d'appli tu veux filtrer donc là tu clics jusqu'à ce que tu ais : All Processes.

    Ensuite tu lances ton appli et tu regardes si tu captes qq chose.
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations forums :
    Inscription : Avril 2009
    Messages : 9
    Points : 9
    Points
    9
    Par défaut
    Merci, j'avais dû mal faire la manip.
    J'ai donc récupéré le flux.

    La requête est correcte, mais mon serveur Oracle a une limite imposée de 32K.

    Je vais donc chercher du côte du paramétrage de mod_plsql.

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

Discussions similaires

  1. urlopen et erreur 400
    Par Definol dans le forum Réseau/Web
    Réponses: 1
    Dernier message: 17/07/2007, 15h11
  2. Erreur 400 en https avec firefox
    Par bambou dans le forum Apache
    Réponses: 2
    Dernier message: 08/02/2007, 17h07
  3. [AJAX] Requetes HTTPS et ajax = erreur 400?
    Par bambou dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 08/02/2007, 16h59
  4. Réponses: 1
    Dernier message: 18/11/2006, 11h36
  5. [VB6]affichage d'une feuille modale / message d'erreur 400
    Par getea85 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 26/01/2006, 18h37

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