2010-06-08 11 views
0

Notre application fournit une API que les gens peuvent utiliser pour soumettre les URL comme ceci:Rails avec HTTP salissant POST Params

curl -X POST http://app.local/resource -d'url=http://news.google.com/newshl=en&q=obama&um=1&ie=UTF-8&output=rss' 

Malheureusement, il semble que Rails bousille avec ce param. Une idée pour réparer ceci? Voir le journal ci-dessous:

Processing ApplicationController#index (for 127.0.0.1 at 2010-06-08 19:03:09) [POST] 
    Parameters: {"um"=>"1", "url"=>"http://news.google.com/newshl=en", "output"=>"rss", "q"=>"obama", "ie"=>"UTF-8"} 

je me attends à ce qui suit:

Parameters: {"url"=>"hhttp://news.google.com/newshl=en&q=obama&um=1&ie=UTF-8&output=rss"} 
+0

Pouvez-vous être un peu plus précis sur le comportement que vous attendiez? (Voulez-vous que 'url' soit l'URL new.google.com?) –

+0

oui, exactement, je m'attendrais à un param" url "comme" http://news.google.com/newshl=fr&q=obama&um= 1 & ie = UTF-8 & output = rss " –

Répondre

1

Qu'est-ce exactement Rails bousille?

Si vous faites référence au fait qu'il n'a pas obtenu l'URL complète de Google (c.-à-d. La sortie, q et autres params) parce que vous devez encoder le caractère '&' si vous voulez l'utiliser comme partie d'une valeur. Quelque chose comme:

curl -X POST http://app.local/resource -d'url=http://news.google.com/newshl=en%26q=obama%26um=1%26ie=UTF-8%26output=rss' 
+0

le problème est que nous avons plusieurs autres paramètres, qui ne sont pas dans le paramètre url. Comment puis-je faire la différence entre eux? –

+0

Où avez-vous plus de paramètres? –

+0

Dans la requête POST, il y a plus que le POST, et je ne peux pas vraiment faire la différence entre les paramètres POST et les paramètres de la chaîne de requête du paramètre url. –