gpt4 book ai didi

scala - 使用 Play Framework 2.0 向 Twitter API 发送 POST 请求

转载 作者:行者123 更新时间:2023-12-04 15:14:15 25 4
gpt4 key购买 nike

如何使用 Play Framework 2.0(使用 Scala)向 Twitter API 发送 POST 请求?我试图调用的 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("")
}
}

然后我尝试使用 POST 调用 API,如下所示:
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("")
}
}

它没有用,我得到了这个异常(exception):
[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调用,它没有抛出任何异常,但当然我没有得到正确的结果。

难道我做错了什么?我做错了什么,为什么?我怎么能解决这个问题?

之前谢谢。

最佳答案

我发现这有效:

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

我还做了笔记,以便在 Play 的每次重大升级时重新审视我的代码!检查上述问题是否得到修复,因为这显然是不对的。

关于scala - 使用 Play Framework 2.0 向 Twitter API 发送 POST 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11166356/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com