代码之家  ›  专栏  ›  技术社区  ›  Allen Han

使用Akka流从HttpResponse中提取数据

  •  0
  • Allen Han  · 技术社区  · 5 年前

    我正在Scala中使用akkahtp,试图与API进行交互,但是在获取某些API调用的数据时遇到了一些问题。基本上,我有一个curl命令,可以在我的终端中对这个特定API的任何有效API调用起作用,但是在我当前的代码中,我只获取响应足够小的调用的实际数据。

    我的第一次尝试是使用系统过程还有那个!!方法在字符串上使用“curl(url)-xget-H\”Authorization:bearner(auth token)\”(这是在我的终端中工作的命令),但是由于解析头时出现问题,scala中出现了一个错误,因此在这方面没有取得任何进展,并且意识到我无论如何都想使用AkkaHTTP,我放弃了这种方法,转而使用下面的代码我从另一个stackoverflow帖子借用的格式。

    implicit val system = ActorSystem()
    implicit val materializer = ActorMaterializer()
    implicit val executionContext = system.dispatcher
    
    val responseFuture: Future[HttpResponse] = Http().singleRequest(HttpRequest(
      uri = "(url)").withHeaders(
      RawHeader("Authorization", "Bearer (auth token)")
    ))
    
    
    responseFuture
      .onComplete {
        case Success(res) => println(res)
        case Failure(_)   => "failure"
      }
    

    0 回复  |  直到 6 年前