Кодировка URL - это игра! Фреймворк - PullRequest
0 голосов
/ 15 мая 2011

Есть ли способ сделать Play!Framework игнорировать косые черты и ? в частях URL?

Как правило, если у меня есть следующее:

www.123.com/api/link/http:www.bla.com/?contenId=123&User=test

Это не будет работать.В этом случае я хотел бы просто иметь ссылку в последней части URL в переменной String, чтобы сохранить ее.Я полагаю, что могу заставить клиента заменить / и ? чем-то другим, но я бы предпочел сделать это проще.

Сначала я подумал, что, может быть, есть способ настроить маршрутизациючто у нас есть что-то вроде:

/api/link/{data}

, где data будет содержать все, что осталось от URL.Хотя не могу понять, как это сделать.

1 Ответ

6 голосов
/ 15 мая 2011

Вы не можете иметь : / ?, кроме своего основного URL.Вы должны кодировать ваш параметр, чтобы добавить его к основному URL.См. URLEncoder для Java.

Это недопустимый URL:

http://www.123.com/api/link/http://www.bla.com/?contenId=123&User=test

Это должен быть:

http://www.123.com/api/link/http%3a%2f%2fwww.bla.com%2f%3fcontenId%3d123%26User%3dtest

Тогда вы можете передатьэто {data} параметр и декодирование это в вашем методе обработчика.

...