Come si invia una richiesta POST all'API di Twitter utilizzando Play Framework 2.0 (con Scala)? L'API Sto cercando di chiamare lavoro sia con GET e POST, e ho chiamato con successo utilizzando GET con questo codice:Invio richiesta POST all'API di Twitter con Play Framework 2.0
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("")
}
}
Poi ho provato a chiamare l'API utilizzando post come questo:
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("")
}
}
non ha funzionato e ottengo questa eccezione:
[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]
Poiché si dice che l'eccezione si verifica sul OAuthCalculator, cerco di commentare la chiamata .sign
, e non gettare alcun eccezione, ma ovviamente non ho ottenuto il risultato giusto.
Sto facendo qualcosa di sbagliato? Cosa sto sbagliando e perché? Come posso risolvere il problema?
Grazie prima.
Questo risolve il mio problema. Grazie! – bertzzie