问题标签 [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.
scala - 使用喷雾客户端的 POST 请求
我想通过 HTTP POST 请求将 XML 发送到服务器,使用 Spray-client 并设置一些标头等。但是,我能找到的只有 JSON 请求的示例。
有人可以使用 Spray-client 通过 HTTP POST 通信提供 XML 的简单代码片段吗?
谢谢!
scala - Spray Client Post Multipart
我想使用 Spray 将多部分表单发布到服务器。特别是我想发布一张图片。
我遇到的问题是将文件编组为多部分。尽管在 Spray 他们提到它是一个默认的 Marshaller,但我似乎无法将两者结合在一起。
我目前使用的是 Spray 1.0-M7,因为我还没有迁移到 Scala 2.10,如果该示例可以与该分支兼容,那就太好了。
我目前拥有的是这样的:
当然,我收到一条错误消息:
我发现的大多数示例都使用 content(as[X]) 指令来编组,但我没有使用 Spray-routing,我只需要在基于另一个框架的应用程序中使用 spray-client 执行帖子。
谢谢
编辑
我实际上已经设法像这样编组它:
不幸的是,这仍然不起作用,数据正在传输,但服务器找不到文件。
一个wireshark捕获揭示了以下内容:
这是使用 Advanced Rest Client 发出的有效请求的捕获:
scala - 我可以为特定管道请求设置超时和重试次数吗?
当使用 spray 的流水线来发出这样的 HTTP 请求时:
有没有办法为请求指定超时以及为该特定请求重试的次数?
我发现的所有文档都只是在配置中做的参考(即使那样我似乎也无法让它工作)。
谢谢
scala - Spray客户端有时会抛出损坏的数据(CRC32校验和错误)
我把我的客户代码写成
大多数时候它工作得很好,但有时会抛出一个
我还从 akka 日志中发现了一些可能与此相关的消息
然后我用
我gzip -t
用来测试那个文件。它说
无效的压缩数据--crc 错误
似乎响应已损坏。
但是我尝试了使用 chrome 插件的请求,它永远不会失败。
是否可以避免异常?
scala - spray-client:记录通过网络发送/接收的实际 HTTP
在 Apache HTTP 客户端中,可以打开“线路日志”的概念,打印出客户端代码生成的实际 HTTP 文本并发送到服务器。
如何使用 spray-client 做同样的事情?我当然可以添加 RequestTransformer 和 ResponseTransformer 并使用 .toString 打印它们,但这并没有告诉我在 TCP 级别上实际序列化为 HTTP 的内容。
scala - 使用 Http 标头通过 spray-client 解组响应
我spray-client
用来访问 REST 服务。服务器返回的部分数据在 http 响应头中(其余在响应正文中)。
为了能够解组响应,我使用Unmarshaller
. 但是,解组器只能访问响应正文(作为 的实例HttpEntity
),并且在此阶段似乎无法访问所有标头。
这是当前的管道和解组器代码:
解组时是否可以访问它们?有什么解决办法吗?
scala - 如何在 Scala 中使用 Spray Client 跟踪中型文件下载的进度
我正在尝试使用 Spray 从我的 Scala 应用程序中下载一个中等大小的文件,比如视频。
我需要下载文件,并且对于我收到的每个卡盘(可能卡盘尺寸是我将通过配置设置的),来跟踪整个过程的进度(也就是进度条之类的)。
另外,我想避免在保存之前将整个文件保存在内存中,而是在收到每个卡盘时保存它(并记录它)。
我查看了文档,并且有点在线。
但是,我似乎找不到这样做的明确方法。
我唯一发现的是这个链接,它说当时喷雾客户端不支持这个用例,我应该直接使用喷雾罐......虽然没有例子,所以我还是有点困惑。
有人可以提出一种方法吗?指出我正确的方向?您将如何下载 30MB 的文件?
谢谢
scala - 使用 Chunked Response 处理 Spray 和自定义 actor 中的断开连接和重新连接
我是 Spray 的新手,并试图实现一个从服务器接收数据流的客户端。我当前的代码如下所示。客户端向 HTTP 服务器发送一个请求,然后该服务器返回一个数据流(作为分块响应)。我检查了它是否连接到服务器并可以得到响应。
但是,我不清楚应该如何处理断开连接和重新连接。例如,(A)如果我失去了网络连接或(B)我的客户端超时,因为当时服务器可能没有任何数据要发送。任何指针/示例将不胜感激。
更新
首先,我想检测上面的事件(A)和(B)。当客户端遇到上述 (A) 或 (B) 时,它应该重新建立连接并重新进行身份验证,以便它可以继续(返回connected
状态以获取数据流。
这些是我的内容resources/application.conf
node.js - 优化一个不起眼的大型 node.js 响应
我正在响应从 node.js 到基于 Akka spray.io 的演员的大(10 MB)有效负载,并从 spray/akka 获得块大小错误[akka://spray-actor-system/user/IO-HTTP/group-0/3] Received illegal response: HTTP chunk size exceeds the configured limit of 1048576 bytes
。
我的 node.js 代码只是简单地在一个res.end
命令中发送响应。(这样做是因为响应是以非流式方式生成的,因此在进一步流式传输它时没有“固有”的增益,至少在添加 spray.io 客户端之前是这样)。
我想知道使用 node.js api 对响应进行分块的最简单方法是什么,以防我不喜欢通过增加 spray.io 大小限制来处理非常大的 http 响应。此外,从 node.js 发送这种大小的响应是否有任何性能下降 - 即 node.js 是否阻塞 res.end 操作?