2011-05-15 3 views
0

Play! Framework은 슬래시를 무시하고 ?은 URL의 일부로 무시할 수 있습니까? 나는 다음과 같은 경우인코딩 URL은 Play! 프레임 워크

일반적으로 :

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

이 작동하지 않습니다. 이 경우, URL의 마지막 부분에 링크를 저장하여 변수를 저장하기 만하면됩니다 (예 : String). 나는 클라이언트가 /?을 다른 것으로 대체하도록 강요 할 수 있다고 생각하지만, 나는 그것을 단순하게 유지하려고한다.

내 첫번째 생각은 어쩌면 우리가 뭔가를 가지고 라우팅 등을 구성 할 수있는 방법이 있다고했다 : data는 URL의 어떤 유물을 보유 할

/api/link/{data}

. 그래도 어떻게하는지 알 수 없습니다.

답변

6

기본 URL을 제외한 :/?을 가질 수 없습니다. 은 기본 URL에 추가 할 매개 변수을 인코딩해야합니다. Java의 경우 URLEncoder을 참조하십시오.

이 유효한 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} 매개 변수과 핸들러 방법에 디코딩에 전달할 수 있습니다.

+1

+1 왜냐하면? URL에서 쿼리 문자열을 표시하지 않고 텍스트의 일부인 경우 이스케이프 처리해야합니다. –

관련 문제