Как этот URL будет декодирован - путаница в основных Http Get - PullRequest
0 голосов
/ 06 мая 2011

В принципе мне нужно передать три параметра в http, как получить. Вот параметры

param1 = 3
param2 = 454
param3 = http://localhost:3000/another_test?another_param=4&another_param2=978

Это преобразуется в

http://localhost:3000/test?param1=3&param2=454&param3=http://localhost:3000/another_test?another_param=4&another_param2=978

Я просто запутался, правильно ли сформирован URL или нет. Будет ли это работать или есть другой способ сделать это. Я использую Rails. Я сделал декодирование и нажал на ссылку, и все еще вижу, что вышеупомянутый URL прибывает. Будет ли это работать на стороне приемника, то есть будет ли он декодирован так, как я намеревался.

Пожалуйста, сообщите.

Ответы [ 2 ]

2 голосов
/ 06 мая 2011

Это должно работать до тех пор, пока вы не закодируете параметры.В этом случае & и ? будут преобразованы, что позволит Rails различать параметры строки запроса и разделители строки запроса.

Чтобы обеспечить его кодирование, вы можете использовать Rack::Utils.escape или Hash#to_query.

2 голосов
/ 06 мая 2011

Это будет декодировано как:

param1=3
param2=454
param3=http://localhost:3000/another_test?another_param=4
another_param2=978

Вам необходимо закодировать param3 или, как минимум, заменить амперсанды в нем правильной кодировкой URL, чтобы он соответствовал вашим входным параметрам.

...