en Python, que puedo hacer esto:convertido rubí de hash a la pregunta URL cadena ... sin esos corchetes
>>> import urlparse, urllib
>>> q = urlparse.parse_qsl("a=b&a=c&d=e")
>>> urllib.urlencode(q)
'a=b&a=c&d=e'
en Ruby [rieles +] No puedo encontrar la manera de hacer la misma cosa sin "rodar el mío", lo cual parece extraño. La forma Carriles no funciona para mí - que añade entre corchetes a los nombres de los parámetros de la consulta, que el servidor en el otro extremo puede o no puede apoyar:
>> q = CGI.parse("a=b&a=c&d=e")
=> {"a"=>["b", "c"], "d"=>["e"]}
>> q.to_params
=> "a[]=b&a[]=c&d[]=e"
Mi caso de uso es simplemente que me desear desordenar con los valores de algunos de los valores en la parte query-string
de la URL. Parecía natural que apoyarse en la biblioteca y/o rieles estándar, y escribir algo como esto:
uri = URI.parse("http://example.com/foo?a=b&a=c&d=e")
q = CGI.parse(uri.query)
q.delete("d")
q["a"] << "d"
uri.query = q.to_params # should be to_param or to_query instead?
puts Net::HTTP.get_response(uri)
pero sólo si el URI resultante es, de hecho, http://example.com/foo?a=b&a=c&a=d
, y no http://example.com/foo?a[]=b&a[]=c&a[]=d
. ¿Hay una forma correcta o mejor de hacer esto?
me vi http://bit.ly/gc2Ylj, lo que me impulsó a escribir rápidamente https://gist.github.com/774142, que * think * logra lo Yo quiero. Aunque lo que quería era * no * hacer mi propio. :-) – Charlie