J'essaie d'obtenir le contenu d'un flux sur HTTPS, mais je dois passer par un proxy HTTP. Je ne voudrais pas utiliser cURL mais plutôt utiliser fopen avec un argument contexte. La chose est, je ne peux pas le faire fonctionner sur HTTPS (HTTP fonctionne bien cependant).PHP - flux https via proxy http
Ce ne pas travail:
$stream = stream_context_create(Array("http" => Array("method" => "GET",
"timeout" => 20,
"proxy" => "tcp://my-proxy:3128",
'request_fulluri' => True
)));
echo file_get_contents('https://my-stream', false, $context);
Ce FONCTIONNE travail (cURL):
$url = 'https://my-stream';
$proxy = 'my-proxy:3128';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_PROXY, $proxy);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
$curl_scraped_page = curl_exec($ch);
curl_close($ch);
echo $curl_scraped_page;
Quelqu'un sait ce qui ne va pas avec le premier morceau de code? Si cela fonctionne avec cURL, il doit y avoir un moyen de le faire fonctionner avec un contexte. J'ai essayé de changer les options de contexte à un tas de valeurs différentes sans aucune chance.
Toute aide serait grandement appréciée!
Merci.
D'après ce que je me rappelle, la clé du tableau passé à 'stream_context_create' est le protocole sera utilisé. Essayez de passer la clé de http à https. – sberry
Merci, mais j'ai essayé, sans succès. J'ai lu des extraits de code où les gens font une demande https sans changer la clé de 'https'. La seule différence ici est que j'utilise un proxy:/ – pcdl
Changer la clé de 'https' est incorrect! Les appels 'https: //' utiliseront le contexte 'http', puis le contexte de transport' ssl' sous-jacent. –