0

私はプレイにかなり慣れていません!フレームワーク(そして実際には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 は支援を提供するという点ではあまり役に立ちません (コード補完もまた失敗します)。

すべてのソリューションを受け入れます。必要に応じて、新しいライブラリを導入しても問題ありません。

4

1 に答える 1

1

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()

他の誰かがこれが役立つことを願っています。

于 2012-06-17T04:53:35.110 に答える