Faire passer "&" dans url REST

Faire passer "&" dans url REST - PHP - Programmation

Marsh Posté le 28-07-2011 à 15:38:42    

Hello :)

 

J'utilise l'api lastfm pour choper des informations sur des artistes:

 

voici l'url pour choper des infos sur renaud par exemple:

 

"http://ws.audioscrobbler.com/2.0/?method=artist.getinfo&artist=renaud&api_key=b25b959554ed76058ac220b7b2e0a026"

 

Le problème se pose quand il y a un "&" dans la requête:

 

"http://ws.audioscrobbler.com/2.0/?method=artist.getinfo&artist=Amadou&Mariam&api_key=b25b959554ed76058ac220b7b2e0a026";

 

J'ai essayé de faire un urlencode dessus ça passe pas (j'ai essayé a tout hasard un urlencode seulement sur le nom de l'artiste mais ça passe pas non plus). Si je remplace le "&" par du vide ou par "and"  le résultat est pas bon non plus...

 

Quelqu'un aurait une idée? J'ai toujours un peu de mal avec ces notions d'urlencode et tout, j'ai ptet zappé quelque chose d'élémentaire ?


Message édité par caribouuu le 28-07-2011 à 15:39:12

---------------
Bla (blaa bbla)
Reply

Marsh Posté le 28-07-2011 à 15:38:42   

Reply

Marsh Posté le 28-07-2011 à 16:34:51    

%26

 

http://ws.audioscrobbler.com/2.0/?method=artist.getinfo&artist=Amadou%20%26%20Mariam&api_key=b25b959554ed76058ac220b7b2e0a026

 

(trouvé en faisant la requete depuis http://www.lastfm.fr/ et le resultat dans l'url)

Message cité 1 fois
Message édité par rengzehn le 28-07-2011 à 16:38:18
Reply

Marsh Posté le 28-07-2011 à 17:36:39    

rengzehn a écrit :

%26

 

http://ws.audioscrobbler.com/2.0/?method=artist.getinfo&artist=Amadou%20%26%20Mariam&api_key=b25b959554ed76058ac220b7b2e0a026

 

(trouvé en faisant la requete depuis http://www.lastfm.fr/ et le resultat dans l'url)

 

Merci ! Donc en gros je remplace les " & " par des "%26" dans le nom de l'artiste ;)

 

Par contre j'ai pas compris comment t'as trouvé à partir de  http://www.lastfm.fr/ ?

 

edit: ah si ok j'ai compris !

Message cité 1 fois
Message édité par caribouuu le 28-07-2011 à 17:38:37

---------------
Bla (blaa bbla)
Reply

Marsh Posté le 28-07-2011 à 17:43:48    

Comment ça urlencode marche pas?

 

edit: parce-que je viens de tester, urlencode remplace bien "&" par "%26".

 

edit 2: par contre urlencode remplace les espaces par "+", si tu veux "%20" il faut utiliser rawurlencode.


Message édité par masklinn le 28-07-2011 à 17:49:51

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 28-07-2011 à 18:15:51    

ben rawurlencode me donne cette url:
 
 

Code :
  1. http%3A%2F%2Fws.audioscrobbler.com%2F2.0%2F%3Fmethod%3Dartist.getinfo%26artist%3DAmadou%26Mariam%26api_key%3Db25b959554ed76058ac220b7b2e0a026


 
Et quand je la passe dans mon navigateur ça marche pas, par contre en remplaçant uniquement le "&" par "%26" ça passe dans le navigateur...

Message cité 1 fois
Message édité par caribouuu le 28-07-2011 à 18:16:22

---------------
Bla (blaa bbla)
Reply

Marsh Posté le 28-07-2011 à 18:31:47    

En fait le principe je pense était de n'appliquer le urlencode que sur le nom de l'artiste en question.

 
Code :
  1. $artistName = 'Amadou&Mariam';
  2. $url = 'http://ws.audioscrobbler.com/2.0/?method=artist.getinfo&artist='.urlencode($artistName).'&api_key=b25b959554ed76058ac220b7b2e0a026';


Message édité par Tirkyth le 28-07-2011 à 18:33:01

---------------
Mon Feedback !
Reply

Marsh Posté le 28-07-2011 à 18:36:18    

caribouuu a écrit :

ben rawurlencode me donne cette url:
 
 

Code :
  1. http%3A%2F%2Fws.audioscrobbler.com%2F2.0%2F%3Fmethod%3Dartist.getinfo%26artist%3DAmadou%26Mariam%26api_key%3Db25b959554ed76058ac220b7b2e0a026


 
Et quand je la passe dans mon navigateur ça marche pas, par contre en remplaçant uniquement le "&" par "%26" ça passe dans le navigateur...


T'es pas censé tout urlencoder, juste ce que tu mets en paramètre dans ton URL [:prozac]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 28-07-2011 à 22:56:57    

Ok je savais pas, cela dit j'ai précisé dans mon premier message que j'avais essayé en le faisant seulement sur l'artiste et ça marchait pas pour amadou&mariam. Mais quand j'essaie de façon simple sans tout le code que j'ai autour ça marche effectivement, donc ya un autre blème dans mon script, merci de votre aide ;)


---------------
Bla (blaa bbla)
Reply

Marsh Posté le 28-07-2011 à 23:14:38    

trouvé ! en fait le & passait pas dans ma méthode ajax, c'est dans le javascript que ça coinçait, (cela dit le urlencode était nécessaire aussi coté php).


---------------
Bla (blaa bbla)
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed