scala - 如何从另一个服务器scala调用rest API
问题描述
我是斯卡拉的新手。目前,要创建休息 API,我正在使用喷雾。现在我想从另一台服务器使用 API。我在 UI 的每个按键上都调用这个 API。如果用户继续输入并且前一个请求处于挂起状态,我将使用 AbortController 中止请求。为了满足其他服务器请求,我使用的是 spray-client。是这样的:
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 客户端创建休息请求。你可以在这里看到详细的例子
推荐阅读
- sql - SQL Server 按条件搜索
- c# - 无法通过 Unity 将数据写入 Firebase 数据库
- laravel - 如何检查变量是否为空
- python - 等待外部进程初始化的策略
- python - Unreadable characters from Python to csv file
- ibm-midrange - AS400 WRKQRY 连接十进制
- ms-access - MS Access 根据开始日期和结束日期创建日期范围
- asp.net-core-2.1 - 如何将控制器重定向到区域部分asp Core 2.1中的剃须刀页面
- apt-get - 安装 ansible 2.6 或更早版本
- java - 检查字符串是否包含大于数字的数字