Bonjour,

Je dois établir en HTTPS une connexion à un serveur et lui envoyer des données (POST). J'utilise donc le module php de curl, seulement c'est la première fois que je code quelquechose avec curl, et ici il s'agit que l'opération ne foire pas, car elle touche à des données sensibles pour le client.

Alors mon code marche nickel a priori, mais je ne sais pas si il est à l'abri d'un problème réseau, ou si il n'y aurait pas des choses supplémentaires à faire avec curl pour me gérer une éventuelle erreur. J'ai fait une bête boucle while pour au moins tenter plusieurs fois de se conecter en cas de difficulté d'un côté ou de l'autre du tuyau. Es-ce une façon correcte de faire ? Si vraiment ca ne passe pas alors j'envoie un message d'erreur au client et à moi-même plus loin dans le code.

Voila le code que j'utilise:

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
$ch = curl_init();
	curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
	curl_setopt ($ch, CURLOPT_CAINFO, ABS_PATH."/cacert.pem");
	curl_setopt($ch, CURLOPT_URL, "https://secure.example.com");
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 
	curl_setopt( $ch, CURLOPT_POST, 10 );
	curl_setopt( $ch, CURLOPT_POSTFIELDS, $data );
 
	while ($sRtn=='' && $i<10) {					
				// Try until you get a response
				$sRtn = curl_exec($ch);
				$i++;
	}
curl_close($ch);
Que puis-je faire de plus pour me mettre à l'abri d'une erreur temporaire ? Peut-etre tester que la réponse a bien HTTP 200 OK comme header ? Puis-je recevoir les headers de cette réponse séparément du reste ?

Merci de votre aide !