2015-09-18 65 views
1

我想了Reverse routing示例代碼發揮斯卡拉2.4.3 redicrect不工作

這裏是我的路線

GET  /hello/:name  controllers.Application.hello(name) 
GET  /bob    controllers.Application.helloBob 

和我的代碼

def helloBob = Action { 
    Redirect(routes.Application.hello("Bob")) 
    } 

def hello(name: String) = Action { 
    Ok("Hello " + name + "!") 
    } 

我能得到你好響應。

$ curl -v localhost:9001/hello/play 
Hello play! 

但是,重定向後無法獲得「Bob」響應?

$ curl -v localhost:9001/bob 
* Trying ::1... 
* Connected to localhost (::1) port 9001 (#0) 
> GET /bob HTTP/1.1 
> Host: localhost:9001 
> User-Agent: curl/7.43.0 
> Accept: */* 
> 
< HTTP/1.1 303 See Other 
< Location: /hello/Bob 
< Date: Fri, 18 Sep 2015 03:19:04 GMT 
< Content-Length: 0 
< 
* Connection #0 to host localhost left intact 

回答

2

URI的路徑組件區分大小寫。覈實。

嘗試

curl -v localhost:9001/hello/Bob 

更新

你的代碼是正確的(驗證我的項目),並可以顯示正確的日誌 - 它打印303碼。我想,你只需要說curl遵循重定向,像這樣

curl -L localhost:9000/bob 
+0

我已經展示了我的代碼,它不區分大小寫。 – keepscoding

+0

好吧,你改變了很多。原因是我認爲這是Play打印字符串「HTTP/1.1 303 See Other

+0

肯定它是在更新後的文章上的錯字錯誤。但它是編譯和運行的。根本還在那裏。命名是diff。你爲什麼不投票?好吧..爲了儘量減少混亂,我改變了鮑勃。你不是在追求。 curl -v本地主機:9001 /你好/鮑勃當然工作,我也展示了它。 – keepscoding