Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/10/2007, 11h35   #1
Modérateur
 
Avatar de Rakken
 
Inscription : août 2006
Messages : 1 207
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 1 207
Points : 1 137
Points : 1 137
Par défaut Dialogue entre service

Bonjour,

Je dois faire dialoguer deux scripts. Je m'explique :
Le premier doit envoyer (de facon completement automatique) avec une requete POST, un fichier XML a une url donnée.
L'url en question, recoit le fichier xml, fait un tas de traitement sur lequels je n'ai pas la main (en JAVA) et retourne un autre fichier xml.

Et la question c'est... comment j'envoie un post automatique ?
Je veux dire, avec un formulaire, l'user clique sur "envoyer", et j'ai tout ce qu'il me faut, mais là, qu'elle est la méthode pour simuler ce comportement ?
De la même manière, une fois le fichier xml envoyé, comment je récupere la réponse ?

Bref, comment dialoguer ?

Merci d'avance !

ps : Pour info, c'est a faire en php 4.
__________________
Rakken

Oneira, un monde imaginaire d'Heroic Fantasy.

Parce que la présomption d'innocence est un des fondements de notre pays et qu'elle doit le rester, dans tous les domaines : http://www.laquadrature.net/
Rakken est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2007, 11h53   #2
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Ce n'est que le protocole HTTP. Vous pouvez forger vous-mêmes vos requêtes en passant par les sockets (extension éponyme ou fonction comme fsockopen) voir plus avancé et simple avec l'extension cURL.

Avec une version 5 de PHP et allow_url_fopen à On, il aurait également été possible de s'orienter vers les fonctions fichiers (fopen, file_get_contents et les fonctions des API XML).
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2007, 12h58   #3
Modérateur
 
Avatar de Rakken
 
Inscription : août 2006
Messages : 1 207
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 1 207
Points : 1 137
Points : 1 137
Humm.... Effectivement, cURL a l'air interessant. Je vais orienter mes recherches de ce côté, voir ce que ca donne.
__________________
Rakken

Oneira, un monde imaginaire d'Heroic Fantasy.

Parce que la présomption d'innocence est un des fondements de notre pays et qu'elle doit le rester, dans tous les domaines : http://www.laquadrature.net/
Rakken est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2007, 14h18   #4
Modérateur
 
Avatar de Rakken
 
Inscription : août 2006
Messages : 1 207
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 1 207
Points : 1 137
Points : 1 137
cURL était la solution.

test_curl1.php envoie un fichier xml a test_curl2.php (un script minimal qui se contente d'afficher ce qu'il vient de recevoir) et le tout est récupéré de nouveau par test_curl1.php qui fait l'affichage complet.

Bref, un aller et retour en bon et due forme ;-))
Si jamais ca peut servir a quelqu'un :

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
 
//test_curl1.php
$postData['param'] = '
<xml>
<id>123</id>
	<Document>
		<URL>http://untestnonvalide.com</URL>
	</Document>
	<Document>
		<URL>http://google.com</URL>
	</Document>
</xml>';
 
$ch = curl_init("http://monsite.com/test_curl2");
$url = "http://monsite.com/test_curl2";
 
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, "param=" . $postData['param']);
 
$response = curl_exec($ch);
 
print_r($response);
if(curl_errno($ch))
  {
  	echo ("Une erreur est survenue : ");
    print curl_error($ch);
  }
curl_close($ch);
Code :
1
2
3
4
5
6
7
 
//test_curl2.php
echo ("*** CECI EST LE CONTENU DU FICHIER testcurl2 !<br />\n");
echo ("<xmp>");
print_r($_POST['param']);
echo ("</xmp>");
echo ("*** FIN DU CONTENU<br />\n");
Merci :-)
__________________
Rakken

Oneira, un monde imaginaire d'Heroic Fantasy.

Parce que la présomption d'innocence est un des fondements de notre pays et qu'elle doit le rester, dans tous les domaines : http://www.laquadrature.net/
Rakken est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h28.


 
 
 
 
Partenaires

Hébergement Web