问题标签 [http4s]
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 - 使用 scalatest 对 http4s 进行单元测试
o/
我正在尝试在 Scala 中为 cex.io 的 API 实现一个客户端。因为我喜欢函数式编程(或者我认为我喜欢),所以我尝试通过使用 http4s 库来做到这一点。这是一些实验代码:
现在我想测试所说的客户:
不幸的是,直接在 IntelliJ 中运行测试总是会给我:
调试到测试表明错误发生在实例化 api 类 ( val api = new CexApi
) 时。
该项目是用 Gradle 构建的,因为我想在我正在做的事情的同时使用 Spring Boot。运行 gradle 测试任务时,它声明它根本没有收到任何测试事件。
我正在使用 Scala 2.13、ScalaTest 2.13:3.1.0 http4s 0.20.15、Gradle 6.0.1,并且我已经在 JDK 1.8 和 11 之间来回切换。我已经在这个问题上上下阅读了互联网,现在我没有想法了。任何建议都非常感谢!
json - Scala,Circe,Http4s - 有什么方法可以在 Circe 中编码 Throwable?
我创建了错误层次结构:
现在我的http4s
路线中可能会出现这种错误:
但我得到编译错误:
could not find implicit value for parameter encoder: io.circe.Encoder[Throwable]
Throwable
是否可以使用circe
and进行编码http4s
?我试着这样做:
但这并没有解决问题。
scala - 如何使用 http4s 处理基本的表单提交?
我不敢相信这不在http4s 文档中,而且我能够在线挖掘的示例代码(在浏览了足够长的时间以发现UrlForm
该类之后)对我不起作用。
相关的代码如下所示:
提交关联表单时,IllegalStateException
会抛出 。ps.values
是一个空地图 ( Map()
)。
我可以看到(使用println
)Content-Type
is application/x-www-form-urlencoded
,正如预期的那样,我可以从浏览器的 Network 选项卡中看到请求“参数”(编码的表单值)正在正确发送。
scala - 使用 http4s 获取请求中的 403 禁止错误
我在 http4s 中做一个简短的任务,很长一段时间以来我都收到了 403 错误,这很难调试。我的代码是:
scala - 如何优雅地关闭 http4s
我正在使用 http4s BlazeServer 0.21,如何优雅关机?我想在硬关机时间内拒绝所有即将到来的请求,并保持处理未完成的请求和响应。
我尝试使用启动服务器serveWhile
并设置一个 shutdownHook SignallingRef
。服务器流和中间件按预期延迟(因此我们的指标和日志中间件仍然记录此响应)
但是http服务器没有像我预期的那样工作,好像http4s的内部ServerChannel
有它自己的shutdownHook并且已经取消了所有的响应。
任何建议/解决方法?或者也许只是一种保持和不杀死请求x
几秒钟的方法,也值得赞赏。
scala - 单元测试 http4s 路由器 websocket 端点
这个想法是能够在路由器服务上对 websocket 端点进行单元测试。使用 a 测试任何其他类型的端点都相当容易Request
,但我想不出一种轻松测试 websocket 响应的方法,因为使用 a 访问端点Request
会给你一个 501 错误,因为你没有任何相应的套接字握手。
这是我正在使用的路由器
这个想法是让类似于下面的代码与 websockets 一起工作
我已经尝试过这样的变体,例如添加标题
虽然任何Request
都会返回 501。
我不确定从这里去哪里,所以如果有人有任何建议,我会很高兴听到。我认为这与创建 websocket 客户端有关,但我不知道在 http4s 中这样做的方法。
http - 使用 http4s 从 http 更改为 https
有没有办法使用库 http4s 将 http 服务器更改为 https?( https://http4s.org/ )
scala - FS2:如何从 fs2.Stream 获取 java.io.InputStream?
假设我有val fs2Stream: Stream[IO, Byte]
并且我需要,例如,调用一些需要java.io.InputStream
.
我想我对 FS2 太陌生了,但我似乎找不到答案。我试过使用fs2.io.toInputStream
,fs2.io.readInputStream
但我不知道如何提供一些必需的参数。我已经在全能的谷歌上搜索了答案,但自从大多数人最后一次寻找答案以来,API 似乎已经发生了变化。
我该如何做以下事情?
java - 为什么会显示 Jetty?
我已经使用https://http4s.org/构建了我的网络应用程序:
正如您在上面的代码中看到的,它使用JettyBuilder
.
当我启动应用程序时,日志显示:
这是否意味着,Web 应用程序已经在 Jetty 上运行,我不必从https://www.eclipse.org/jetty/下载码头服务器?
通常,war 文件必须放入 webapps 文件中:
scala - 如何使用 keycloak 保护 http4s webapp?
我想用 Keycloak 保护我的基于 Http4s 的 webapp,这在https://www.keycloak.org/docs/latest/securing_apps/index.html#_jetty9_adapter中有描述。
如代码片段所示,http4s webapp 在 Jetty 上运行
而且我不必从https://www.eclipse.org/jetty/下载码头容器。
有没有办法使用 Keycloak 码头适配器保护基于 Http4s 的 webapp?