Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 3 sur 3
  1. #1
    Invité régulier
    Inscrit en
    avril 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : avril 2009
    Messages : 13
    Points : 7
    Points
    7

    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
    9 739
    Détails du profil
    Informations forums :
    Inscription : septembre 2004
    Messages : 9 739
    Points : 16 090
    Points
    16 090

    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
    Invité régulier
    Inscrit en
    avril 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : avril 2009
    Messages : 13
    Points : 7
    Points
    7

    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
  •