J'ai un problème. J'essaie d'obtenir des ressources d'information. Et avant cela, j'ai besoin d'une authentification de base. J'ai trouvé une solution ici, mais ça ne marche pas.Comment file_get_contents from HTTPS avec l'authentification de base?
$username = "username";
$password = "password";
$url = "https://sapi.website.ru:3443/services/";
//GetCountries
$urlCountries = $url."?action=GetCountries";
$remote_url = $urlCountries;
$opts = array(
'http' => array(
'method' => "GET",
'header' => "Authorization: Basic ".base64_encode("$username:$password"),
'timeout' => 60
)
);
$context = stream_context_create($opts);
$file = file_get_contents($remote_url, false, $context);
print($file);
Erreur: failed to open stream: Délai de connexion dépassé dans
J'ai aussi ceci: file_get_contents(): Invalid valeur date.timezone 'Europe/Moskow', nous avons choisi le fuseau horaire 'UTC' pour l'instant - mais ça pourrait marcher avec. Ou pas?
Le problème est peut-être lié à la connexion HTTPS. Soutien où j'ai API, donnez-moi juste url, login et mot de passe. Et ils ont dit: "Vous avez juste besoin d'une authentification de base".
C'est la première fois que j'essaie de travailler avec et il me manque peut-être quelque chose d'important. J'espère que vous pouvez m'aider avec ça.
P.S. Désolé pour mon anglais
UPD J'ai essayé de faire comme ceci:
$headers = array(
'Content-Type: application/xml',
"Authorization: Basic ".base64_encode("$username:$password")
);
$process = curl_init($urlCountries);
curl_setopt($process, CURLOPT_HTTPHEADER, $headers);
curl_setopt($process, CURLOPT_HEADER, 1);
curl_setopt($process, CURLOPT_USERPWD, $username . ":" . $password);
curl_setopt($process, CURLOPT_TIMEOUT, 30);
curl_setopt($process, CURLOPT_POST, 1);
curl_setopt($process, CURLOPT_RETURNTRANSFER, TRUE);
$return = curl_exec($process);
curl_close($process);
print_r($return);
Maintenant, je n'ai pas de messages d'erreur. Mais aussi je n'ai pas de résultats.
J'ai trouvé que les fonctions 'file_get_contents()' et 'stream_' ne sont pas fiables avec' https'. Avez-vous envisagé d'utiliser [curl] (http://stackoverflow.com/questions/2140419/how-do-i-make-a-request-using-http-basic-authentication-with-php-curl)? – GentlemanMax
Je l'ai essayé. UPD ma question. Maintenant, je n'ai aucun message d'erreur. Mais aussi je n'ai pas de résultats. –