Précédent   Forum du club des développeurs et IT Pro > Java > Général Java > Langage
Langage Forum d'entraide sur le langage Java et autres langages pour la JVM : syntaxe, POO, conventions, API standard. Avant de poster -> FAQ Java
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 23/11/2012, 16h44   #1
mike76
Invité régulier
 
Inscription : avril 2009
Messages : 13
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 13
Points : 6
Points : 6
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();
		}
		}
}
mike76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2012, 17h40   #2
thelvin
Modérateur
 
Inscription : septembre 2004
Messages : 7 113
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 7 113
Points : 10 349
Points : 10 349
Envoyer un message via Skype™ à thelvin
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.
thelvin est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 24/11/2012, 09h10   #3
mike76
Invité régulier
 
Inscription : avril 2009
Messages : 13
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 13
Points : 6
Points : 6
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>
mike76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 21h20.


 
 
 
 
Partenaires

Hébergement Web