问题标签 [scalaj-http]

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 回答
483 浏览

scala - 是否将同步 HTTP 请求包装在被视为 CPU 或 IO 约束的 Future 中?

考虑以下两个片段,其中第一个使用 scalaj-http 请求包装Future,而第二个使用 async-http-client

使用全局 EC同步使用 Future 包装的客户端

使用全局 EC 的异步客户端

片段正在使用

前者需要 12 秒,而后者需要 6 秒。似乎前者的行为好像受 CPU 限制,但我不明白这是怎么回事,因为Future#sequence应该并行执行 HTTP 请求?为什么包装的同步客户端的Future行为与正确的异步客户端不同?异步客户端在幕后将调用包装在 Futures 中,难道不是这种情况吗?

0 投票
1 回答
80 浏览

scala - scalaj-http - “执行”方法正在返回“流已关闭”

我想使用 scalaj-http 库从 http 连接下载大小为 31gb 的字节内容文件。'asBytes' 不是一个选项,因为它返回一个字节数组。

我尝试使用返回输入流的“执行”方法,但是当我执行下面的程序时,它返回流已关闭。我不认为我正在阅读两次流。

我做错了什么?

0 投票
0 回答
78 浏览

scala - 使用 spray-json 和 scalar.http 在 Scala 中正确使用困难的嵌套 JSON 对象

我的问题基本上是将复杂的 json 字符串反序列化为对象。

这是带有隐式的案例类:

这是主要对象:

它打破val parsedBody = json.convertTo[OpenCageDataResponse]了以下跟踪:

这是作为响应返回的实际 json 对象

就代码的简短性而言,我真的不认为这是使用对象的好方法,但我真的没有找到更好的方法,因此感谢分享更好的方法以进一步使用。

0 投票
0 回答
256 浏览

java - 来自 Rest Api 超时异常的 Spark Scala HTTP 响应

我必须使用 Spark Scala 读取来自 REST API 的 JSON 响应,我已经编写了代码(都使用 scala.io.Source.fromInputStream 以及 Scalaj HTTP)但是作业没有在 HDFS 上运行,每次它给我超时异常虽然我已将超时(连接/读取)增加到最大值。

在我的 Intellij(本地)上它工作正常,我在 HDFS 日志中看到除了超时异常之外我找不到其他任何东西,但这可以看出它仍然采用默认超时值,即 100 毫秒(没有采用我提供的最大值在我的代码中)

以下是日志:

0 投票
0 回答
20 浏览

scala - 在scalaj中解析HttpResponse主体

我正在对返回 json 对象的端点进行 get 调用。我可以看到正文,但无法访问正文中的任何键。我得到一个“值状态不是字符串的成员”。如何访问状态键?

我的代码:

当我尝试request.body("status").toString在它的位置使用时,它说它是一个字符串数组,需要一个整数,而不是字符串键。

responsebody = {“状态”:“成功”}

编辑:

我怀疑这是因为我可能必须将其转换为 json 对象,但我找不到任何本机 scala 库来执行此操作。

0 投票
1 回答
54 浏览

scala - 无法使用带有 SSL 证书的 scalaj-Http 客户端访问 Rest URL(JKS 文件)

我是 Scala 的新手。我正在尝试访问 REST API URl 并尝试在本地 vm(Intellij)中使用带有 Spark 框架的 Scalaj-Http 从那里获取 json 数据。但是使用以下代码,我总是从代码中获取 Http 错误代码 401,并且服务器日志响应“新 ssl 会话,TLS V1.2 无客户端证书。

我正在使用的 jks 文件似乎可以通过正确的 SSL 握手并将其安装在服务器端。

尝试了一切,但无法解决。请帮忙