+ Répondre à la discussion
Affichage des résultats 1 à 3 sur 3
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    avril 2009
    Messages
    35
    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 : 35
    Points : 17
    Points
    17

    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 :
    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 191
    Détails du profil
    Informations forums :
    Inscription : septembre 2004
    Messages : 10 191
    Points : 16 965
    Points
    16 965

    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
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    avril 2009
    Messages
    35
    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 : 35
    Points : 17
    Points
    17

    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.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •