首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Scala,Hammock -检索http响应头并将JSON转换为自定义对象

Scala,Hammock -检索http响应头并将JSON转换为自定义对象
EN

Stack Overflow用户
提问于 2019-11-10 20:47:38
回答 1查看 90关注 0票数 0

我已经创建了一个使用Hammock(https://github.com/pepegar/hammock)的简单程序,现在我想从github应用程序接口中获得reposne的报头的响应。我创建了一个这样的代码:

代码语言:javascript
复制
object GitHttpClient extends App {
  implicit val decoder = jsonOf[IO, List[GitRepository]]
  implicit val interpreter = ApacheInterpreter.instance[IO]

  val response = Hammock
    .request(Method.GET, uri"https://api.github.com/orgs/github/repos?per_page=3", Map())
    .as[List[GitRepository]]
    .exec[IO]
    .unsafeRunSync()

  println(response)
}

case class GitRepository(full_name: String, contributors_url: String)

它工作得很好,我将Git数据映射到我的对象上。但现在我也想从response获取headers,而不能通过简单的response.headers来实现。只有当我删除.as[List[GitRepository]]行并拥有整个HttpResponse时,我才能访问headers。有可能在不解析整个HttpResponse的情况下获得headers

EN

回答 1

Stack Overflow用户

发布于 2019-11-10 21:32:48

我在收到响应后使用Decoder解决了这个问题:

代码语言:javascript
复制
 val response = Hammock
    .request(Method.GET, uri"https://api.github.com/orgs/github/repos?per_page=3", Map())
    .exec[IO]
    .unsafeRunSync()

    println(response.headers("Link") contains ("next"))
    println(HammockDecoder[List[GitRepository]].decode(response.entity))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58788832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档