2013-07-15 29 views
5

Tôi đang sử dụng văn từ Scala như sau:Làm thế nào để vượt qua% 2f để java.net.URI mà không có nó được biến thành/

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) 

Các %2f bị biến thành một /, vì vậy nó cố gắng gửi đến /api/queues///myQueue/get thay vì /api/queues/%2f/myQueue/get.

Làm cách nào để thoát khỏi tính năng này đúng cách?

+2

Đây có phải là sự cố liên quan không? http://stackoverflow.com/questions/2765782/why-does-java-automatically-decode-2f-in-uri-encoded-filenames –

Trả lời

1

Dấu% được sử dụng trong mã hóa url. Vì vậy,% 2f được giải mã thành /. thử nó trên trình duyệt và bạn sẽ thấy.

Sử dụng% 25 để biểu thị% dấu. ví dụ.

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

Điều đó được chuyển thành '/api/queues/%252f/cdm.mio/get 'thay vì'/api/queues /% 2f/cdm.mio/get': ( – Blake

+1

Thật thú vị.% 2f được giải mã nhưng% 25 không, cả hai đều hợp lệ. –

Các vấn đề liên quan