Maison >développement back-end >tutoriel php >Pourquoi ma demande CURL via un proxy échoue-t-elle et comment puis-je y remédier ?

Pourquoi ma demande CURL via un proxy échoue-t-elle et comment puis-je y remédier ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-14 09:49:01322parcourir

Why Is My CURL Request Through a Proxy Failing, and How Can I Fix It?

Comment utiliser CURL via un proxy : un guide de dépannage

L'utilisation d'un serveur proxy peut améliorer les fonctionnalités de curl, mais une configuration incorrecte peut entraîner erreurs. Voici une analyse approfondie de votre code et une solution aux problèmes que vous avez rencontrés :

Problème 1 : Variable manquante

Dans l'extrait de code initial, la ligne 12 a été tentée pour utiliser $url sans l'initialiser :

$url = '$_POST[1]';

Solution :

Initialisez $url avec la valeur appropriée du formulaire HTML.

Problème 2 : Écran vide

Le code mis à jour ne renvoie désormais qu'un écran vide. Cela est probablement dû au fait que $curl_scraped_page ne fait pas écho à la sortie :

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);

Solution :

Définissez CURLOPT_RETURNTRANSFER sur 1 pour activer la sortie vers $curl_scraped_page.

Code de travail final :

$url = 'http://dynupdate.no-ip.com/ip.php';
$proxy = '66.96.200.39:80';

$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;

Remarques supplémentaires :

  • CURLOPT_PROXYUSERPWD peut être utilisé pour fournir un nom d'utilisateur et un mot de passe pour authentification proxy.
  • CURLOPT_HEADER peut être commenté si les en-têtes ne sont pas souhaités dans la sortie.
  • Le réglage de CURLOPT_PROXY sur null désactive le proxy pour des requêtes spécifiques.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn