问题标签 [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 投票
1 回答
1873 浏览

scala - Spray JSON - 仅解析部分 JSON 响应

我从示例对象包含的服务器收到以下 Json 响应

我只需要这个结果的一部分。

需要以下属性:

所以我创建了以下案例类及其隐式解析器:

但我收到以下错误:

你能帮忙吗?

0 投票
1 回答
3572 浏览

scala - 使用喷雾客户端进行多个请求时的akka​​超时

将 spray 1.3.2 与 akka 2.3.6 一起使用。(akka 仅用于喷雾)。
我需要读取大文件并为每一行发出一个 http 请求。
我用迭代器逐行读取文件,并为每个项目提出请求。它在某些行上成功运行,但在某些时候它开始失败:
akka.pattern.AskTimeoutException: Ask timed out on [Actor[akka://default/user/IO-HTTP#-35162984]] after [60000 ms]
我首先认为我超载了服务,所以我将“spray.can.host-connector.max-connections”设置为 1。它运行得慢得多,但我得到了同样的错误。

这里的代码:

我这样做是因为我不需要整个数据,只需要一些聚合。

我该如何解决这个问题并让它完全异步?

0 投票
0 回答
856 浏览

scala - 从带有案例类消息的 akka Actor 发送 POST 消息失败

我想使用喷雾客户端从一个演员发出一个网络请求,这个网络请求需要一个参数,该参数必须是接收消息的一部分。为了做到这一点,我创建了一个案例类,如:

演员看起来像这样:

我的问题是,只要消息是字符串,例如:

服务调用被执行。但是,如果我使用案例类以便能够对消息进行参数化,则 Web 调用会超时,但是(我用 wireshark 检查过)甚至没有建立到服务器的连接。

调用消息的代码:

当消息是案例类时,我是否处于不同的上下文中?

感谢您的任何帮助

问候阿基拉

0 投票
1 回答
178 浏览

scala - 如果 max-redirects > 1,位置标头会丢失

我有以下设置:

和以下配置:spray.can.host-connector.max-redirects = 2. 我知道这个 URL 会重定向,但是当我检查响应标头时,我没有看到 Location 标头告诉我它重定向到的位置。

如果我将配置更改为spray.can.host-connector.max-redirects = 1Location 标头就在那里并且正确。但是,如果将来有人决定在同一个应用程序中需要更多的 erdirect,我希望它不会中断。我会错过任何有关喷雾配置的信息吗?

0 投票
1 回答
1724 浏览

scala - 使用 spray.client 从 http POST 解组错误 onFailure

对于这个问题,我对 spray.io 和 scala 非常陌生,所以如果我没有在这里得到关于解组的术语,我提前道歉。

我正在尝试使用管道获取 HTTP POST 响应,它预计会失败,因为我需要一个授权标头,但现在让我们忽略它。

如果我使用 chrome 扩展 Postman 发布到 url,我会得到这个响应,简单明了的 json:

因此,我开始为此响应创建自己的案例类,并实现了自己的 JsonProtocol,以解组响应。

所以现在我已经准备好运行我的管道并收到响应了。

请求完成并且 onFailure 案例运行,但 error.getMessage 不再是 json,就像前面的 Postman 示例一样。

所以我的问题变成了,如何将返回的错误及其正文解组到我的 CreateFromTemplateResult 案例中?或者简单地进入 json 也可以。我不知道我的 onSuccess 案例是否也能奏效,我希望他们都有相同的行为。我希望它们采用我定义的 CreateFromTemplateResult 格式。

非常感谢您抽出宝贵时间,再次为我的错误术语道歉。

0 投票
1 回答
769 浏览

scala - 喷雾测试 gzip 解码

我尝试为喷雾编写测试

我有跟随路由器

我使用 GZIP 压缩进行响应,但是

无法解组对responseAs断言的类型“java.lang.String”的响应:MalformedContent(unknown token Near: ,Some(org.json4s.ParserUtil$ParseException: unknown token Near: ))

如何将自动解码 GZIP HttpResponse 设置为字符串?

0 投票
1 回答
206 浏览

scala - 喷涂请求 - 仅在嵌套期货之后完成请求

喷雾和 scala 的新手。这几天一直在努力让它正确。

我正在尝试将 facebook oauth2 登录 + 用户登录详细信息合并到数据库中,以防同一用户通过不同方式(用户/密码或 fb 登录)登录。

粘贴在喷雾路由片段下方。

一切正常,除非是第一次使用 fb 登录的用户(请参阅 request(2))。
在嵌套未来完成之前,请求以空响应完成。

我尝试对来自 userFuture 的结果进行 flatMapping,然后在其上使用 onComplete 以给出适当的响应,但它不起作用。

知道如何使用令牌成功完成请求(请求(2))吗?

0 投票
2 回答
581 浏览

akka - 在演员中使用喷雾客户端(sendReceive)

用例是这样的:

  1. 一个 Actor 绑定到喷 IO - 接收和处理所有通过指定端口的入站 HTTP 请求。
  2. 对于每个入站请求,参与者需要将出站异步 http 请求发送到不同的外部端点,取回入站响应并将响应发送回发起方。

使用 spray 的客户端 sendReceive 返回一个未来。这意味着参与者将继续处理其邮箱中的下一条入站消息,而无需等待它刚刚发送的出站请求的响应,同时出站请求的响应可能会到达并在 Future 回调中执行,因为它是没有在actor的邮箱中排队,它可能会被并行执行,打破了actor在给定时间内仅由一个线程执行的想法。

我想知道如何在不破坏actor线程封装的情况下处理这个用例,actor如何以actor安全的方式使用spray-client(用于发送/接收异步http事件)?

0 投票
3 回答
2454 浏览

ssl - 如何使用 Spray https 客户端定义 SSLContext?

我想将 http 请求发布到具有给定 ca 证书的安全服务器。

我使用的是 Spray 1.3.1,代码如下所示:

问题是未采用定义的隐式 SSLContext 并且我在运行时得到:“无法找到请求目标的有效证书路径”。

如何定义 SSLContext 以与喷雾客户端一起使用?

0 投票
1 回答
1004 浏览

xml - 如何在Spray中解组案例类列表

第一次喷雾用户未能在任何地方找到任何合适的例子。我正在寻找解组包含List[Person].

case class Person(name: String, age: Int)。解组器应生成适当的List[Person].

Spray有一个默认值NodeSeqUnmarshaller,但我无法弄清楚如何正确链接事物,将不胜感激任何指针。