使用相当简单和优雅的 Scala Dispatch HTTP 库。由于 Twitter Search API 现在使用 OAuth 1.0A,我显然需要开始注入(inject) Consumer 和 AccessToken 信息。我在下面有一个简单的请求:
val request = url("https://api.twitter.com/1.1/search/tweets.json?q=%23%sresult_type=mixed&count=4" format w.queryValue)
val response = Http(request OK as.String)
如果我已经知道我的 Consumer 和 AccessToken 信息,有什么方法可以向其中添加 header ?文档相当稀缺。谢谢!
最佳答案
我不熟悉 OAuth API,但 Dispatch 允许您使用 <:<
添加任意 HTTP 请求 header 方法/运算符。
所以将上面的代码示例和这个 "Authorizing a request" 结合在一起来自 Twitter 开发者网站的例子,你可能会得到这样的东西:
val authentication = """OAuth oauth_consumer_key="xvz1evFS4wEEPTGEFPHBog", oauth_nonce="kYjzVBB8Y0ZFabxSWbWovY3uYSQ2pTgmZeNu2VS4cg", oauth_signature="tnnArxj06cWHq44gCs1OSKk%2FjLY%3D", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1318622958", oauth_token="370773112-GmHxMAgYyLbNEtIKZeRNFsMKPR9EyMZeS9weJAEb", oauth_version="1.0""""
val request = url("https://api.twitter.com/1.1/search/tweets.json?q=%23%sresult_type=mixed&count=4" format w.queryValue)
val authHeader = Map("Authentication" -> authentication)
val requestWithAuthentication = request <:< authHeader
val response = Http(requestWithAuthentication OK as.String)
我还没有验证这是否真的有效,但希望它能让你朝着正确的方向前进。
关于scala - 在 Scala Dispatch 0.9.5 中插入 Oauth header 的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15261928/