如何从另一台服务器scala调用RESTAPI

如何从另一台服务器scala调用RESTAPI,scala,spray,spray-client,Scala,Spray,Spray Client,我是斯卡拉的新手。目前,为了创建RESTAPI,我正在使用spray。现在我想使用另一台服务器的API。我在UI的每一个关键点上调用这个API。如果用户继续键入并且上一个请求处于挂起状态,我将使用AbortController中止该请求。要处理其他服务器请求,我使用spray客户端。是这样的: def completeService(completeRequest: CompleteRequest): Future[HttpResponse] = { val pipeline: HttpR

我是斯卡拉的新手。目前,为了创建RESTAPI,我正在使用spray。现在我想使用另一台服务器的API。我在UI的每一个关键点上调用这个API。如果用户继续键入并且上一个请求处于挂起状态,我将使用AbortController中止该请求。要处理其他服务器请求,我使用spray客户端。是这样的:

def completeService(completeRequest: CompleteRequest): Future[HttpResponse] = {

  val pipeline: HttpRequest => Future[HttpResponse] = sendReceive ~> unmarshal[HttpResponse]
  val response: Future[HttpResponse] = pipeline(Post(someremoteUrl.concat("complete"), completeRequest)
   ~> addHeader("demo", "test"))
  response
}
我可以使用上面的代码访问。我得到了预期的回应。但这件事很费时。它创建新的TCP连接并与主机通信,点击API并给出响应,然后终止连接。在这里,当终止时,它有时处于空闲状态,并且不接受新连接


有没有其他方法可以做到这一点?

您可以使用akka http客户端创建rest请求。您可以看到详细的示例

我们可以将Akka Http客户端与spray一起使用吗?因为两者都有相同的模型(HttpMethods,HttpResponse,…)@dharmeshsingh肯定是的,只需添加akka http spry json库