我想从This Rest API中消耗一些资源 但似乎我需要一些授权。实际上,作为初学者,我不知道如何使用Spray访问此端点。
Spray Client的一个简单示例:
val pipeline = sendReceive ~> unmarshal[GuildwarsApiResult]
val responseFuture = pipeline {
Get("https://api.guildwars2.com/v2/commerce/listings/46741")
}
谢谢!
答案 0 :(得分:0)
我最近看到很多想要使用GuilWars API的人提出的问题。最近是否创建了?
根据您的问题,您需要在documentation中为POST请求指定带有API令牌的HTTP标头。对于GET请求,您应该在URL中传递令牌。
This显示了如何创建和使用自定义http标头。
object ApiTokenHeader extends ModeledCustomHeaderCompanion[ApiTokenHeader] {
def renderInRequests = false
def renderInResponses = false
override val name = "Authorization"
override def parse(value: String) = Try(new ApiTokenHeader(value))
}
final class ApiTokenHeader(token: String) extends ModeledCustomHeader[ApiTokenHeader] {
def renderInRequests = false
def renderInResponses = false
override val companion = ApiTokenHeader
override def value: String = "Bearer " + token
}
并将其用作
val responseFuture = pipeline {
Get("https://api.guildwars2.com/v2/commerce/listings/46741").withHeaders(ApiTokenHeader("55eec993e046c63bc8f486ee"))
}
我没有编译它但它应该可以工作。