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

Réseau C Discussion :

Problème violation d'accès à l'adrese F0C48308 + ouverture fichier PDF WS + pas de catch des exceptions


Sujet :

Réseau C

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 307
    Points : 87
    Points
    87
    Par défaut Problème violation d'accès à l'adrese F0C48308 + ouverture fichier PDF WS + pas de catch des exceptions
    Bonjour,

    Ca fait plusieurs jours que j'essaye d'utiliser le composant Indy TIdHTTP (je galère bien), j'avance mais il me reste quelques problèmes.
    Voici mon code :

    // Récupération du token de l'utilisateur
    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
    45
    46
    47
    post = new TStringStream("...");
    IdHTTP_recuperation_token->Request->Clear();
    IdHTTP_recuperation_token->Request->Accept = "application/xml";
    IdHTTP_recuperation_token->Request->ContentType = "application/json";
    try{
    	reponse = IdHTTP_recuperation_token->Post(url,post);
    	DM_report->OSP_recuperation_token->Close();
    	DM_report->OSP_recuperation_token->ParamByName("p_xml")->AsString = reponse;
    	DM_report->OSP_recuperation_token->Execute();
    	token = DM_report->OSP_recuperation_token->Params->ParamValues["P_TOKEN"];
    }
    catch (EIdException &e){
    	MessageDlg(e.Message, mtWarning, TMsgDlgButtons() << mbOK, 0);
    }
     
    // Création du document dans la GED
    post = new TStringStream("...");
    IdHTTP_creation_doc_ged->Request->Clear();
    IdHTTP_creation_doc_ged->Request->Accept = "application/xml";
    IdHTTP_creation_doc_ged->Request->ContentType = "application/json";
    IdHTTP_creation_doc_ged->Request->CustomHeaders->Add("x-access-token: "+token);
     
    try{
    	reponse = IdHTTP_creation_doc_ged->Post(url,post);
    	DM_report->OSP_recuperation_gedId->Close();
    	DM_report->OSP_recuperation_gedId->ParamByName("p_xml")->AsString = reponse;
    	DM_report->OSP_recuperation_gedId->Execute();
    	gedId = DM_report->OSP_recuperation_gedId->Params->ParamValues["P_IDGED"];
    }
    catch (EIdException &e){
    	MessageDlg(e.Message, mtWarning, TMsgDlgButtons() << mbOK, 0);
    }
     
    // Envoi de la facture en PDF (fichier) dans la GED
    facture = new TFileStream(ExtractFilePath(Application->ExeName) + "\\"+IntToStr(fac)+".pdf", Sysutils::fmOpenRead);
    IdHTTP_envoi_pdf->Request->Clear();
    IdHTTP_envoi_pdf->Request->Accept = "application/xml";
    IdHTTP_envoi_pdf->Request->ContentType = "application/x-www-form-urlencoded";
    IdHTTP_envoi_pdf->Request->CustomHeaders->Add("x-access-token: "+token);
    try{
    	reponse = IdHTTP_envoi_pdf->Put(url,facture);
    }
    catch (EIdException &e){
    	MessageDlg(e.Message, mtWarning, TMsgDlgButtons() << mbOK, 0);
    }
     
    facture->Free();
    Le 3ème appel dans tous les cas ne fonctionne pas, j'ai une erreur
    HTTP/1.1 415 Unsupported Media Type
    que je n'arrive pas à catcher d'ailleurs. Avez-vous une méthode pour ouvrir un fichier PDF que l'on utilise dans le body d'un PUT ?
    Les 1er et 2ème appel fonctionne nickel la première fois par contre lors du 2ème appel du 2ème appel l'application plante sur cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    reponse = IdHTTP_creation_doc_ged->Post(url,post);
    et j'ai une violation d'accès à l'adresse F0C48308, lors du 3ème appel j'ai
    Connection Closed Gracefully
    que je n'arrive pas à catcher. Avez-vous une idée ?
    Et problème général impossible de catcher les expressions .

    Merci d'avance pour votre aide

    Cordialement

  2. #2
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 307
    Points : 87
    Points
    87
    Par défaut
    Bonjour,

    J'ai débloqué pas mal de points j'arrive à faire mes appels.
    Par contre lorsque je passe la 2ème fois, j'ai toujours une erreur de violation d'accès.
    J'ai essayé Disconnect, Free, CloseGracefully() et j'ai toujours le problème

    Edit 12:13 : J'ai solutionné mon problème en faisant ça avant chaque appel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IdHTTP_creation_doc_ged = new TIdHTTP(Application);

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

Discussions similaires

  1. [SP-2010] Problème d'ouverture fichier PDF
    Par didithewarrior dans le forum SharePoint
    Réponses: 5
    Dernier message: 22/11/2012, 14h46
  2. Problème violation d'accès
    Par waste dans le forum Débuter
    Réponses: 3
    Dernier message: 26/09/2012, 17h25
  3. Problème Violation d'accès drag&drop entre 2 tableaux
    Par flash11 dans le forum Débuter
    Réponses: 2
    Dernier message: 20/08/2011, 10h04
  4. Problème violation d'accès
    Par flo-1987 dans le forum C
    Réponses: 9
    Dernier message: 02/04/2009, 16h05
  5. Problème ouverture fichier pdf
    Par rorobase dans le forum VBA Access
    Réponses: 2
    Dernier message: 28/10/2008, 10h29

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