Je prévois d'utiliser PHP pour une simple exigence. Je dois télécharger un contenu XML à partir d'une URL, pour laquelle je dois envoyer une demande HTTP GET à cette URL.
Comment faire en PHP?
Sauf si vous avez besoin de plus que le contenu du fichier, vous pouvez l'utiliser file_get_contents
.
$xml = file_get_contents("http://www.example.com/file.xml");
Pour quelque chose de plus complexe, j'utiliserais cURL .
failed to open stream: HTTP request failed!
file_get_contents
ne vous permet pas de faire la demande avec des cookies personnalisés, des en-têtes et d'autres choses qu'un navigateur enverrait généralement, donc vous pourriez ne pas obtenir la réponse que vous recherchez. Dans ce cas, vous feriez mieux d'utiliser CURL de toute façon. (Mais ce n'est pas le cas du PO.)Pour des demandes GET / POST plus avancées, vous pouvez installer la bibliothèque CURL ( http://us3.php.net/curl ):
la source
file_get_contents()
. Une simple chaîne de 4 lettres a pris environ 10 secondes, tandis que la boucle a pris plus de 1 seconde max.http_get
devrait faire l'affaire. Les avantages dehttp_get
overfile_get_contents
incluent la possibilité d'afficher les en-têtes HTTP, d'accéder aux détails de la demande et de contrôler le délai d'expiration de la connexion.la source
N'oubliez pas que si vous utilisez un proxy, vous devez faire une petite astuce dans votre code php:
la source
Selon que votre configuration php autorise fopen sur les URL, vous pouvez également fopen simplement l'url avec les arguments get dans la chaîne (comme http://example.com?variable=value )
Edit: relisant la question, je ne suis pas certain si vous cherchez à passer des variables ou non - si vous ne l'êtes pas, vous pouvez simplement envoyer la demande fopen contenant http://example.com/filename.xml - n'hésitez pas ignorer la partie variable = valeur
la source
J'aime utiliser fsockopen ouvert pour cela.
la source
En revanche, l'utilisation de l'API REST d'autres serveurs est très populaire en PHP. Supposons que vous cherchiez un moyen de rediriger certaines requêtes HTTP vers l'autre serveur (par exemple, obtenir un fichier xml). Voici un package PHP pour vous aider:
Donc, obtenir le fichier xml:
la source
Guzzle est une bibliothèque très connue qui rend extrêmement facile de faire toutes sortes d'appels HTTP. Voir https://github.com/guzzle/guzzle . Installez avec
composer require guzzlehttp/guzzle
et exécutezcomposer install
. Le code ci-dessous est maintenant suffisant pour un appel http get.la source