Отправка запроса POST в API Twitter с помощью Play Framework 2.0

Как отправить запрос POST в API Twitter с помощью Play Framework 2.0 (с Скала)? API, который я пытаюсь вызвать, работает как с GET, так и с POST, и я успешно вызвал его с помощью GET с помощью следующего кода:

val followersURL = "http://api.twitter.com/1/users/lookup.json?user_id=" + listOfFollowers.mkString(",")            
WS.url(followersURL)
  .sign(OAuthCalculator(Twitter.KEY, tokens))
  .get()
  .map{ response => 
      val screenName: Seq[String] = response.json match {
          case res: JsArray => res.value.map{ value => (value \ "name").toString }
          case _ => Seq("")
      }
  }

Затем я попытался вызвать API с помощью POST следующим образом:

WS.url("http://api.twitter.com/1/users/lookup.json")
  .sign(OAuthCalculator(Twitter.KEY, tokens))
  .post(Map("user_id"->listOfFollowers))
  .map { response => 
      val screenName: Seq[String] = response.json match {
          case res: JsArray => res.value.map{ value => (value \ "name").toString }
          case _ => Seq("")
      }
  }

Это не сработало. работаю, и я получаю следующее исключение:

[error] play - Waiting for a promise, but got an error: null
java.lang.NullPointerException: null
        at java.io.Reader.<init>(Unknown Source) ~[na:1.7.0_01]
        at java.io.InputStreamReader.<init>(Unknown Source) ~[na:1.7.0_01]
        at oauth.signpost.OAuth.decodeForm(OAuth.java:157) ~[signpost-core.jar:na]
        at oauth.signpost.AbstractOAuthConsumer.collectBodyParameters(AbstractOAuthConsumer.java:236) ~[signpost-core.jar:na]
        at oauth.signpost.AbstractOAuthConsumer.sign(AbstractOAuthConsumer.java:96) ~[signpost-core.jar:na]
        at play.api.libs.oauth.OAuthCalculator.sign(OAuth.scala:106) ~[play_2.9.1.jar:2.0.1]

Поскольку в нем говорится, что исключение возникает в OAuthCalculator, я пытаюсь закомментировать вызов .sign, и он не выдает никаких исключений, но, конечно, я не получил нужного результата.

Я делаю что-то не так? Что я делаю не так и почему? Как я могу решить проблему?

Спасибо.

6
задан bertzzie 23 June 2012 в 02:40
поделиться