我是剧本新手!框架(以及 Scala 本身,真的),但我似乎在实现(通用?)函数方面遇到了障碍。我的代码如下:
package controllers
import play.api._
import play.libs._
import play.api.mvc._
object Application extends Controller {
def jsonStringMap(str: String) =
util.parsing.json.JSON.parseFull(str) match {
case Some(m: Map[_,_]) => m collect {
// If this doesn't match, we'll just ignore the value
case (k: String, v: String) => (k,v)
} toMap
case _ => Map[String,String]()
}
def index = Action {
Ok(views.html.index("Your new application is ready."));
}
def view_mix(id: Int) = Action {
Ok("")
}
def view_popular = Action {
val whydoyouhateme: F.Promise[play.libs.WS.Response] = WS.url("http://8tracks.com/mixes/1002?format=json&api_key=10889794345788a1eee1110e06b5aa5405d76170").get()
Ok(whydoyouhateme.get().getBody())
}
}
我关心的那行(val whydoyouhateme....)应该,如果逻辑站得住脚,应该返回与我将浏览器指向 http://8tracks.com/mixes/1002?format=json&api_key=10889794345788a1eee1110e06b5aa5405d76170 相同的内容。不幸的是,事实并非如此。它给了我如果我去 http://8tracks.com/mixes/1002 会看到的东西(这只是一个重定向)。
我在这里错过了什么吗?我是否必须在其他地方指定 GET 变量?这真的让我发疯,Eclipse IDE 在提供帮助方面并没有做太多事情(代码完成再次让我失败)。
对所有解决方案都持开放态度,如有必要,我很乐意引入一个新库。
FML!去图。我缺少一个相当重要的规范(setQueryParameter(string,string))。
固定电话:
val whydoyouhateme: F.Promise[play.libs.WS.Response] = WS.url("http://8tracks.com/mixes/1002").setQueryParameter("format", "json").setQueryParameter("api_key", "10889794345788a1eee1110e06b5aa5405d76170").get()
希望其他人会觉得这很有用。