scala - 在 Scala Dispatch 0.9.5 中插入 Oauth header 的方法?

标签 scala http http-headers scala-dispatch

使用相当简单和优雅的 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/

相关文章:

apache - 登录 Apache webapp (OpenClinica) 后立即注销

ajax - 使用 JsonRest Store (dojo) 自定义 http header

http - 为什么 Accept header 带有 HTTP_ 前缀?

java - 异常处理标准

Scala Lift - 保护文件免遭盗链的强大方法

c# - 使用 C# 访问网络文件共享

php - HTTP 请求的 keep_alive 和 persistent 选项有什么区别?

Scala 2.11 Spark 2.0 hortonworks-spark/shc sbt 程序集

scala - 在sbt中同一个项目下添加插件

c# - .NET SoapClient 类发送的默认 http 用户代理 header 是什么?