问题标签 [spray-client]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1837 浏览

scala - 喷雾客户端 - 将具有意外内容类型的响应视为应用程序/json?

当我尝试获取这样的亚马逊身份数据时

使用适当的案例类和格式化程序,我收到以下异常

不支持的内容类型(预期的“应用程序/json”)

因为亚马逊将他们的回复标记为文本/纯内容类型。他们也不关心Accept标头参数。有没有一种简单的方法可以告诉 spray-json 在解组时忽略这一点?

0 投票
1 回答
1077 浏览

scala - 通用喷涂客户端

我正在尝试使用喷雾在 Scala 中创建一个通用的 HTTP 客户端。这是类定义:

对象utils.AllJsonFormats具有以下声明。它包含所有模型格式。在“另一端”使用相同的类,即我还编写了 API,并在那里使用了与 spray-can 和 spray-json 相同的格式化程序。

当然,该对象具有对 models.api.Space、models.api.Failure 和 models.api.Success 序列化的定义。

类型看起来不错,即当Space我告诉泛型方法它将接收并返回 aSpace时,没有错误。但是,一旦我将 Either 带入方法调用,就会出现以下编译器错误:

找不到 spray.httpx.unmarshalling.Unmarshaller[Either[models.api.Failure,models.api.Success]] 类型的证据参数的隐式值。

我的期望是spray.json.DefaultJsonProtocol 中隐含的,即spray.json.StandardFormts 中的隐含内容,可以覆盖我。

以下是我的 HttpClient 类,尝试最好是通用的: 更新:更清晰/可重复的代码示例

有了上述,问题仍然出现在 unmarshaller 未解决的地方。帮助将不胜感激..

谢谢。

0 投票
1 回答
2448 浏览

scala - 使用喷雾客户端在 Actor 系统内进行 REST Web 服务调用

我有一个 Actor 系统,它正在处理来自外部系统的连续流消息。我的系统中有以下演员。

  1. SubscribeActor- 这个 Actor 订阅了 Redis 通道并创建了一个新的 InferActor 并将 JSON 有效负载传递给它。
  2. InferenceActor- 这个演员负责2a。解析负载并从 JSON 负载中提取一些值文本值。2b。调用外部REST service将 2a 中提取的值传递给此服务。REST 服务部署在 LAN 中的不同节点上,并且在计算方面做了一些相当繁重的工作。

2b 中的外部 REST 服务是使用 Spray 客户端调用的。我测试了系统,它工作正常,直到 2a。但是,一旦我介绍了 2b。我开始出现 OutOfMemory 错误,系统最终停止运行。

目前,我有两个主要嫌疑人——

  1. 设计缺陷 - 我在 Actor 系统中使用 Spray 客户端的方式不正确(我是 Spray 新手)
  2. 由于缓慢的 REST 服务导致的延迟导致的性能问题。

在我转到 #2 之前,我想确保我正确使用了 Spray 客户端,尤其是。当我从其他演员那里打电话时。我的问题是正确/不正确/次优下面的用法?

这是调用该服务的 Web 服务 REST 客户端的代码。

这是InferenceActor调用上述服务的代码。

0 投票
2 回答
1464 浏览

scala - 限制 Akka/Spray 上的 HTTP 请求

我在 Scala 中使用 Akka 演员从外部服务(HTTP 获取请求)下载资源。来自外部服务的响应是 JSON,我必须使用分页(提供程序非常慢)。我想在 10 个线程中同时下载所有分页结果。我使用这样的 URL 来下载块:http ://service.com/itmes?limit=50&offset=1000

我创建了以下管道:

ScatterActor 获取要下载的项目总数并将其分成块。我创建了 10 个 LoadChunkActor 来同时处理任务。

LoadChunkActor 使用 Spray 发送请求。演员长这样:

如您所见,LoadChunkActor 正在从外部服务请求块并添加要在 onComplete 上运行的回调。Actor 现在准备好接收另一条消息并且他正在请求另一个块。Spray 正在使用非阻塞 API 来下载块。结果外部服务被我的请求淹没了,我得到了超时。

如何安排任务列表但我想同时处理最多 10 个?

0 投票
1 回答
557 浏览

scala - [Spray Client]:Facebook 图形 API 返回错误的内容类型

盯着Spray Library,我尝试向 Facebook Graph API 发出请求:

主要问题是响应的内容类型 Content-Type: text/javascript; charset=UTF-8 不是预期的application/json

我的请求到底有什么问题?

由于Spray严重依赖于内容类型进行解析等。

0 投票
1 回答
645 浏览

scala - 喷解压 HttpResponse

我正在使用 Spray API(spray-client) 来访问外部 URL,并且我得到了 gzipped HttpResponse。如何解压缩此 HttpResponse 以获取其实体(在我的情况下为 json)?

在这里,json 被压缩。我如何解压缩它?

0 投票
1 回答
2367 浏览

scala - spray.io 如何与 scala 2.11.1 akka 2.3.2 一起工作

我想将 spray.io 与 scala 2.11.x akka 2.3.x 一起使用,我在 spray.io 的项目信息页面中找到以下内容:

当我使用 spray-client 时,我遇到了一些问题,然后我在 spray.io 的文档页面中发现,spray-client 依赖于 akka 2.10.x:

提供的范围是什么意思?如何将它与用 scala 2.11.x akka 2.3.x 编写的程序的其他部分一起使用?

编辑

以下是文档页面中列出的最简单的用例:

使用 build.sbt:

虽然这编译得很好,但它遇到了运行时错误:

0 投票
1 回答
125 浏览

asynchronous - 从喷雾响应中访问喷雾请求

每 50 毫秒调用一次这个函数:

我想知道我的成功请求中发送了哪些数据。
我怎样才能做到这一点?

0 投票
1 回答
522 浏览

scala - 找到:spray.routing.Directive0(扩展为)spray.routing.Directive[shapeless.HNil] 需要:spray.routing.Directive[shapeless.HList]

我需要帮助。我正在尝试使用 CURL 进行 HTTP POST 并使用喷雾路由和参数

我的 JSON Post 是可选的,这意味着我也可以将请求作为

如果我在路由中使用

上面的代码工作文件

但是如果我尝试使 POST 可选,它不起作用

有人可以帮忙解决问题吗?

0 投票
1 回答
699 浏览

json - Spray Client 我想从 Json 响应中返回字符串

对不起,但我是 Scala 的新手。我已经阅读了有关 Futures 和 Akka 的信息,但是我仍然在为我的方法返回字符串时遇到问题。

我有一个方法 getAuthString 应该返回身份验证字符串(或令牌)。我使用了喷雾 Jsonsupport,我可以打印结果

这将解组 json 并打印所需的 authString。但是,印刷对我没有好处。我知道 onComplete 返回单位。我想返回 authString 以便我可以在其他地方使用它来处理另一个请求。我想我将不得不使用平面地图或地图,但我不确定如何。我需要我的方法来返回 authString 或错误。