Authentification par proxy requise avec cURL
Je voudrais utiliser une boucle de la fonction, mais je suis derrière un proxy, donc, je reçois un HTTP/1.1 407 Proxy Authentication Required
erreur...
C'est le code php que j'utilise:
$proxy_user = 'Michiel';
$proxy_pass = 'mypassword';
$proxy_url = 'myproxyurl:port';
$proxy = true;
$service_url = "https://www.myapiurltocall.com";
$service_user = 'user:password:FO';
$service_pass = 'password';
$ch = curl_init($service_url);
//Set proxy if necessary
if ($proxy) {
curl_setopt($ch, CURLOPT_PROXY, $proxy_url);
curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxy_user.':'.$proxy_pass);
curl_setopt($ch, CURLOPT_PROXYPORT, 8080);
curl_setopt($ch, CURLOPT_PROXYAUTH, CURLAUTH_NTLM);
}
//Set service authentication
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLOPT_USERPWD, "{$service_user}:{$service_pass}");
//HTTP headers
$headers['Authorization'] = 'Basic ' . base64_encode("$proxy_user:$proxy_pass");
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_HEADER, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_ENCODING, '');
curl_setopt($ch, CURLOPT_TIMEOUT, 15);
//WARNING: this would prevent curl from detecting a 'man in the middle' attack
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);
$data = curl_exec($ch);
Et je ne sais pas ce que je fais mal... Comment puis-je obtenir autour de cette erreur?
source d'informationauteur Michiel | 2012-03-22
Vous devez vous connecter pour publier un commentaire.
C'est ce que je suis la plupart du temps à l'aide de :
Essayer de mettre en œuvre dans votre fonction
demande de chèque envoyer 200ok ...
Et vérifier votre certificat sécurisé si vous êtes en utilisant....
Grâce.
C'est ce que j'utilise et il fonctionne parfaitement:
En supposant que le
$proxy_user:$proxy_pass
sont les valeurs correctes, si vous êtes derrière un pare-feu au bureau de l'authentification des informations d'identification pour être utilisée serait celle d'un administrateur de réseau, et non pas votre propre...j'ai rencontré quelque chose de très similaire dans mon milieu de travail et qui a été le cas pour moi, que les normales des informations d'identification n'ont pas les privilèges nécessaires. La meilleure façon de s'assurer que c'est le cas, cependant, serait de s'assurer que le code fonctionne dans un réseau ouvert avec vos paramètres de proxy commenté. Espérons que cette aide!