2013-07-15 7 views
5

sto usando spedizione da Scala come segue:come passare% 2f al java.net.URI senza essere trasformato in/

val body = """{"count":5,"requeue":true,"encoding":"auto","truncate":50000}""" 
val req = url("http://localhost:4567/api/queues/%2f/myQueue/get").as_!("guest", "guest") << (body, "application/json") 

val http = new Http 

val resp = http(req as_str) 

Il %2f viene trasformato in un /, quindi si cerca di inviare a /api/queues///myQueue/get anziché a /api/queues/%2f/myQueue/get.

Come faccio a uscire correttamente?

+2

Potrebbe essere un problema correlato? http://stackoverflow.com/questions/2765782/why-does-java-automatically-decode-2f-in-uri-encoded-filenames –

risposta

1

% segno utilizzato nella codifica url. Quindi,% 2f viene decodificato in /. provalo sul browser e vedrai.

Utilizzare% 25 per rappresentare il segno%. per esempio.

val req = url("http://localhost:4567/api/queues/%252f/myQueue/get") 
+0

Questo viene trasformato in '/api/queues/%252f/cdm.mio/get 'piuttosto che'/api/queues /% 2f/cdm.mio/get' :( – Blake

+1

Questo è interessante.% 2f viene decodificato ma% 25 non lo è, essendo entrambi validi. –