Bonjour,
J'envoie les informations à un web service
Je récupère les informations de transferts de donnée :
  1. Info sur la connexion
  2. Réponse de web service
  3. Les erreurs (s'il y'en a)
  4. et je ferme la connexion.


Ensuite, je traite ces informations :
j'enregistre les informations de connexion dans un fichier avec la réponse de web service dans un fichier
S'il y a des erreurs de CURL (curl_error), je l'envoie des alertes par courriels, etc.
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
//...
 
$ws_curl = curl_init();
 
curl_setopt($ws_curl, CURLOPT_URL, $webS_url);
curl_setopt($ws_curl, CURLOPT_POST, true);
 
curl_setopt($ws_curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ws_curl, CURLOPT_SSL_VERIFYPEER, false);
 
curl_setopt($ws_curl, CURLOPT_POSTFIELDS, http_build_query(array('xml' => $data_xml)));
curl_setopt($ws_curl, CURLOPT_RETURNTRANSFER, true);
 
$launch = curl_exec($ws_curl);  //les informations à un web service
 
$comeFromCURL = curl_getinfo($ws_curl);  //les informations de transfere de data :Info sur la connexion
 
$data_for_log = "\r\n" .'Information come from transfer by CURL :'.  "\r\n" . serialize($comeFromCURL) . "\r\n" .'Response by server distance (webservice) :'."\n". $launch. "\r\n";
if(curl_errno($ws_curl)) //erreurs (s'il y'en a)
{			
	$error_number_curl = curl_errno($ws_curl);
	$error_text_curl = curl_error($ws_curl);
}
curl_close($ws_curl);	//ferme la connextion
 
//...
Mon application envoie 1re fois les informations à web service et dés qu'il reçoit les informations par [curl_getinfo] la connexion se ferme par [curl_close].
Par contre, lorsque le script ne reçoit pas rapidement les informations, il l'envoie une deuxième fois.
Comment peut-on définir ce délai ?
J'ai regardé les informations reçues par [curl_getinfo]

Les délais normaux ce sont :
[total_time] => 0.672 < -------- s:10:"total_time";d:0.67199999999999993;s:15
[total_time] => 2.141
[total_time] => 2.157
total_time] => 2.172
total_time] => 2.656
[total_time] => 5.64
total_time] => 6.968
Pendant tous ces temps, le "CURL" a envoyé une seule fois les informations.

Par contre le "CURL" a envoyé 2 fois les informations lorsque le délai est comme cela :
[total_time] => 9.688
total_time] => 9.656

[total_time] => 8.641
[total_time] => 8.547 < -------- (s:10:"total_time";d:8.5470000000000006;

[total_time] => 9.688
total_time] => 9.656

Comment puis-je définir cette limite?
Comment puis-je empêcher le 2e envoi après cette limite?

Merci