J'ai des problèmes pour appeler une URL à partir de code PHP. J'ai besoin d'appeler un service en utilisant une chaîne de requête de mon code PHP. Si je tape l'url dans un navigateur, cela fonctionne bien, mais si j'utilise file-get-contents () pour faire l'appel, j'obtiens:
Avertissement: file-get-contents (http: // ....) n'a pas pu ouvrir le flux: la requête HTTP a échoué! HTTP / 1.1 202 Accepté dans ...
Le code que j'utilise est:
$query=file_get_contents('http://###.##.##.##/mp/get?mpsrc=http://mybucket.s3.amazonaws.com/11111.mpg&mpaction=convert format=flv');
echo($query);
Comme je l'ai dit - appelez depuis le navigateur et cela fonctionne très bien. Aucune suggestion?
J'ai également essayé avec une autre URL telle que:
$query=file_get_contents('http://www.youtube.com/watch?v=XiFrfeJ8dKM');
Cela fonctionne bien ... est-ce que l'URL que j'ai besoin d'appeler en contient une seconde http://
?
php
api
query-string
file-get-contents
indéfini
la source
la source
CURLOPT_USERAGENT
très important dans mon cas, merci!Cela pourrait-il être votre problème?
la source
urlencode()
sur les paramètres GET a résolu le problème.la source
get_url
devrait en fait êtreget_fcontent
puisque vous avez changé le nom de la fonction elle-même. Il s'agit en fait d'un appel de fonction récursif qui tente à nouveau d'obtenir le contenu de l'URL en modifiant certains paramètres.file_get_contents()
utilise lesfopen()
wrappers, il est donc interdit d'accéder aux URL via l'allow_url_fopen
option dans php.ini.Vous devrez soit modifier votre php.ini pour activer cette option, soit utiliser une méthode alternative, à savoir cURL - de loin le moyen le plus populaire et, pour être honnête, standard d'accomplir ce que vous essayez de faire.
la source
file_get_contents()
travaillait sur une URL différente. Néanmoins, c'est toujours un bon conseil pour les autres ayant ce problème.Vous devez essentiellement envoyer des informations avec la demande.
Essaye ça,
Cela a fonctionné pour moi
la source
Je remarque que votre URL contient des espaces. Je pense que c'est généralement une mauvaise chose. Essayez d'encoder l'URL avec
puis appeler
et voyez si vous avez plus de chance.
la source
J'ai eu un problème similaire, j'ai analysé l'url youtube. Le code est;
Ensuite, je me rends compte que
$this->video_url
comprennent les espaces. J'ai résolu cela en utilisanttrim($this->video_url)
.Peut-être que cela vous aidera. Bonne chance
la source
Je ne suis pas sûr des paramètres (mpaction, format), s'ils sont spécifiés pour la page amazonaws ou ##. ##.
Essayez de urlencode () l'url.
la source
la source
J'ai un problème similaire.
En raison du délai d'attente!
Le délai d'expiration peut être indiqué comme ceci:
la source
Utilisez ceci
la source