[php] Impossible de trouver le transport de socket "https"



2 Answers

Décommentez la ligne: extension=php_openssl.dll dans php.ini

Question

J'utilise ceci pour vérifier la disponibilité d'une URL:

$fp = fsockopen($url, 443, $errno, $errstr);

et je reprends cette erreur ...

Attention: fsockopen () [function.fsockopen]: impossible de se connecter à https://example.com/soapserver.php:443 (Impossible de trouver le transport de socket "https" - avez-vous oublié de l'activer lorsque vous avez configuré PHP? ) dans C: \ Home etc etc ....

J'utilise un serveur IIS btw (non, ce n'est pas mon cas!), Donc je pense que cela n'a rien à voir avec open-ssl, mais je ne suis pas sûr. Quelqu'un peut-il aider s'il vous plaît?

J'ai fait un phpinfo () et j'ai SSL, mais sur IMAP et CURL, c'est tout.

Des idées?




Disons que vous vouliez vous emparer de NY Times, qui applique HTTPS:

Incorrect:

$client = stream_socket_client('https://www.nytimes.com', $errno, $errstr, 30);

Correct:

$client = stream_socket_client('tcp://www.nytimes.com:443', $errno, $errstr, 30);

Remarque J'ai remplacé https:// par tcp:// et ajouté le port 443 au nom d'hôte.

Je suppose que nous pouvons dire que stream_socket_client() ne parle pas d'URL.




Passer à ssl:// fonctionné pour moi mais j'ai continué à recevoir une réponse BAD REQUEST. J'ai trouvé que je devais ajouter une ligne supplémentaire pour déclarer explicitement mon en-tête d'hôte comme décrit here et m'assurer que j'ai mis à jour mon HTTP de HTTP/1.0 à HTTP/1.1 :

$header .= "POST /cgi-bin/webscr HTTP/1.1\r\n";
$header .= "Host: www.sandbox.paypal.com\r\n";





Related