Problème requête HTTPS

newsdas Messages postés 4 Date d'inscription lundi 24 novembre 2008 Statut Membre Dernière intervention 8 janvier 2011 - 8 janv. 2011 à 11:28
cs_kappo Messages postés 4 Date d'inscription lundi 25 janvier 2010 Statut Membre Dernière intervention 19 février 2013 - 2 févr. 2011 à 10:30
Bonjour à tous les pro.
Je travaille depuis peu sur une application web où j'effectue des Requêtes HTTP pour communiquer avec un serveur distant. Je réussi bien à communiquer via une URL HTTP non sécurisé donc mes requêtes HTTP marchent bien. Mais aujourd'hui je cherche à envoyer ces requêtes via une URL sécurisée(HTTPS) ça plante : erreur sur toutes les fonctions socket que j'appelle.
Voici ma fonction pour mes requêtes HTTP :
function requete_http($url, $variables)
{
//pour que la réponse s'affiche comme du texte brut
header('Content-Type: text/html');
 
$url = parse_url($url);
if(isset($url['port'])) {
  $port = $url['port'];
} else {
  $port = 8282;
}
 
//nom hote du site
$name = $url['host'];
 
//pour ne pas devoir calculer à la main la longueur du corps, on le stocke dans une variable et la fonction strlen() nous la donne.
$data = http_build_query($variables);
 
//la requête
$envoi  = "POST ".$url['path']." HTTP/1.1\r\n";
$envoi .= "Host: ".$name."\r\n";
$envoi .= "Connection: Close\r\n";
$envoi .= "Content-type: application/x-www-form-urlencoded\r\n";
$envoi .= "Content-Length: ".strlen($data)."\r\n\r\n";
$envoi .= $data."\r\n";
 
//création du socket
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
//ouverture socket
@socket_connect($socket,gethostbyname($name), $port) OR die('texte qui affiche qu\'une exception est levée');
@socket_write($socket, $envoi, strlen($envoi)) OR die('texte qui affiche qu\'une exception est levée');
//lecture réponse
$reception = @socket_read($socket, 2024);
while(!preg_match('#^HTTP/1.1#', $reception)) {
$reception = socket_read($socket, 2024);
}
list($http, $reponse, $texte) = explode(" ", $reception, 3);
list($ext, $texte) = explode("Connection: close", $texte, 2);
socket_close($socket);

return array($reponse, $texte);
}

Nb: J'ai lu quelque part qu'il fallait d'abord activer l'extension OpenSSL sur Wamp(Puisque mon application web est hébergée sur mon ordinateur sous wampserver 2). Je l'ai bien activé et toujours rien! plantage à tous les coups.
Je vous remercie d'avance pour avoir parcouru ce post et j'espère que vous apporteriez une solution à ce problème

2 réponses

TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
8 janv. 2011 à 19:42
Salut,

En effet il va falloir activer OpenSSL... mais dans le but de l'utiliser. Ici tu envoie toujours tes requêtes en clair sur ta socket, ce qui n'est pas ce que tu veux. Bref, soit tu te coltine l'utilisation des fonction OpenSSL en plus de ta socket, soit tu utilises Curl qui te permet de facilement gérer tes requêtes, y compris en SSL.
0
cs_kappo Messages postés 4 Date d'inscription lundi 25 janvier 2010 Statut Membre Dernière intervention 19 février 2013
2 févr. 2011 à 10:30
slt
0
Rejoignez-nous