p
u
b
l
i
c
i
t
é
publicité
  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    avril 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : avril 2009
    Messages : 46
    Points : 21
    Points
    21

    Par défaut Récupérer "entity-body" requête HTTP Post

    Bonjour,

    Je développe un agent dans Lotus Notes en Java.

    A cette ligne :
    connection.setRequestProperty("Content-PharmaML", "CLE_MD5-ENTITY_BODY");

    à la place de "CLE_MD5-ENTITY_BODY" je dois mettre la partie "entity-body" de ma requête HTTP chiffrée en MD5.

    Or je ne sais pas comment identifier cette partie "entity-body"

    Pourriez-vous m'aider svp.

    Voici le code :

    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
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.io.OutputStreamWriter;
    import java.net.HttpURLConnection;
    import java.net.URL;
     
    import lotus.domino.*;
     
    public class JavaAgent extends AgentBase {
     
    	public void NotesMain() {
     
    		try {
    		URL url = new URL("http://pharmaml.com/SPCML/Commande.aspx");
     
     
    		HttpURLConnection connection=(HttpURLConnection) url.openConnection();
    		connection.setRequestMethod("POST");
    		connection.setUseCaches(false);
    		connection.setDoOutput (true);
    		connection.setDoInput(true);
     
     
    		//HTTP Headers
    		connection.setRequestProperty("Content-Type", "text/xml;charset='utf-8'");
     
    		connection.setRequestProperty("Content-PharmaML", "CLE_MD5-ENTITY_BODY");	
     
     
    		connection.setRequestProperty("Version-PharmaML", "3.0");
     
    		OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream ());
     
    		out.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?><SRP_ENVELOPPE xmlns=\"urn:x-srp:fr.srp.protocole:enveloppe-v30\" Version_Protocole=\"3.0.0.0\" Nature_Action=\"REQ_EMISSION\" Id_Logiciel=\"ReseauTest\" Version_Logiciel=\"01.00.00\" Id_Moteur=\"ReseaumatiquePhML\" Version_Moteur=\"1.3.0.0\" Usage=\"P\"><ENTETE><EMETTEUR Nature=\"OF\" Code=\"00\" Id_Officine=\"123\" Adresse=\"Ph - 76000 \" /><RECEPTEUR Nature=\"RE\" Code=\"14\" Id_Repartiteur=\"140\" Adresse=\"uu\" /><REF_MESSAGE>I1234567890124</REF_MESSAGE><DATE>2012-11-22T09:59:25</DATE></ENTETE><CORPS><MESSAGE_OFFICINE xmlns=\"urn:x-srp:fr.srp.protocole:message-v30\"><ENTETE><EMETTEUR Nature_Partenaire=\"OF\" Id_Client=\"425\" /><DESTINATAIRE Id_Repartiteur=\"25\" Nature_Partenaire=\"RE\" Code_Societe=\"5\" /><DATE>2012-11-22T09:59:25</DATE></ENTETE><CORPS><COMMANDE Commentaire_General=\"test commande\" Ref_Cde_Client=\"CMDEV12345614\"><LIGNE_CDE Num_Ligne=\"1\" Type_Codification=\"CIP/ACL7\" Code_Produit=\"72216\" Designation=\"t1\" Quantite=\"1\" Partielle=\"false\" Reliquat=\"false\" /></COMMANDE></CORPS></MESSAGE_OFFICINE></CORPS></SRP_ENVELOPPE>");
     
    		out.flush();
    		out.close();
     
    		connection.disconnect();
     
    		} catch(Exception e) {
    		e.printStackTrace();
    		}
    		}
    }

  2. #2
    Modérateur

    Inscrit en
    septembre 2004
    Messages
    10 370
    Détails du profil
    Informations forums :
    Inscription : septembre 2004
    Messages : 10 370
    Points : 17 295
    Points
    17 295

    Par défaut

    Le entity body c'est tout ce que tu envoies dans le connection.getOutputStream() avant qu'un close() soit applé dessus.

    Le plus simple serait de l'écrire d'abord dans un ByteArrayOutputStream, puis de récupérer le byte[] correspondant, et d'en calculer le MD5Sum, puis seulement après l'envoyer dans le connection.getOutputStream()
    Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher du poisson, il videra le lac et au bout de deux ans son village ne mangera plus jamais.
    Partagez vos connaissances, mais aussi comment s'en servir.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    avril 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : avril 2009
    Messages : 46
    Points : 21
    Points
    21

    Par défaut

    Bonjour thelvin

    Merci vraiment pour ton explication.
    J'y vois déjà un plus clair sur ce "entity body"

    donc mon entity body contient cette chaine :
    <?xml version="1.0" encoding="UTF-8"?><SRP_ENVELOPPE xmlns="urn-srp:fr.srp.protocole:enveloppe-v30" Version_Protocole="3.0.0.0" Nature_Action="REQ_EMISSION" Id_Logiciel="ReseauTest" Version_Logiciel="01.00.00" Id_Moteur="ReseaumatiquePhML" Version_Moteur="1.3.0.0" Usage="P"><ENTETE><EMETTEUR Nature="OF" Code="00" Id_Officine="123" Adresse="Ph - 76000 " /><RECEPTEUR Nature="RE" Code="14" Id_Repartiteur="140" Adresse="uu" /><REF_MESSAGE>I1234567890124</REF_MESSAGE><DATE>2012-11-22T09:59:25</DATE></ENTETE><CORPS><MESSAGE_OFFICINE xmlns="urn-srp:fr.srp.protocole:message-v30"><ENTETE><EMETTEUR Nature_Partenaire="OF" Id_Client="425" /><DESTINATAIRE Id_Repartiteur="25" Nature_Partenaire="RE" Code_Societe="5" /><DATE>2012-11-22T09:59:25</DATE></ENTETE><CORPS><COMMANDE Commentaire_General="test commande" Ref_Cde_Client="CMDEV12345614"><LIGNE_CDE Num_Ligne="1" Type_Codification="CIP/ACL7" Code_Produit="72216" Designation="t1" Quantite="1" Partielle="false" Reliquat="false" /></COMMANDE></CORPS></MESSAGE_OFFICINE></CORPS></SRP_ENVELOPPE>

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

Discussions similaires

  1. Requête HTTP POST sous .Net
    Par Médinoc dans le forum Framework .NET
    Réponses: 2
    Dernier message: 30/10/2007, 17h30
  2. [LINUX] Simuler une requête HTTP POST ou GET
    Par Anified dans le forum Linux
    Réponses: 1
    Dernier message: 05/02/2007, 16h11
  3. Récupérer le résultat d’une requête http
    Par f_in_afyn dans le forum Fichiers
    Réponses: 2
    Dernier message: 27/01/2007, 17h41
  4. Comment effectuer une requête http post ?
    Par Turtle_fr dans le forum 4D
    Réponses: 10
    Dernier message: 07/09/2006, 01h25

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