问题标签 [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.

0 投票
1 回答
2826 浏览

scala - 如何记录对 http4s 客户端的所有请求

我想记录我的应用程序发出的所有请求。该应用程序会像这样进行多次调用:

有没有办法让客户端将所有请求都记录到文件中?

(使用 v0.12.4)

0 投票
2 回答
5921 浏览

scala - 将 json 正文添加到 http4s 请求

本教程展示了如何创建 http4s 请求:https ://http4s.org/v0.18/dsl/#testing-the-service

我想将此请求更改为 POST 方法并使用 circe 添加文字 json 正文。我尝试了以下代码:

这给了我一个类型不匹配的错误:

我理解错误,但我不知道如何转换io.circe.JsonEntityBody. 我见过的大多数示例都使用EntityEncoder,它不提供所需的类型。

我怎样才能转换io.circe.Json成一个EntityBody

0 投票
1 回答
1308 浏览

scala - 如何使用 http4s 将猫 IO 变成 Effect

我有一些返回 IO 的代码,但我需要 http4s 中的效果。

0 投票
1 回答
961 浏览

scala - Scala 和 fs2/cats 的 WebSocket 挑战

我正在使用 Http4s 安装一个 websocket 服务,我可以使用该服务在此后端服务和 UI 之间进行通信(批处理作业的管道状态更新和完成百分比)。

我正在使用BlazeBuilder Websocket 示例来设置服务。

该服务有效,但我想做的是从类实例中发出套接字消息。例如,我想实例化一个工作线程,传递套接字连接的引用,并能够将数据发送到该连接。不幸的是,我很难完成这项工作!它在 Python 和 JS 中要简单得多。

请参阅下面的代码,主要是我上面链接的示例代码。在我调用 Stream.emit(...) 的地方,我怎样才能传递对该“toClient”的引用并仍然向它发出?如果我将 toClient 实例传递给类实例,它似乎不起作用。

0 投票
1 回答
317 浏览

node.js - Are non-stream WebSockets in Scala possible at all? Doesn't seem like it

In JavaScript and Python, two other languages I use a lot at work, it is very easy to set up a WebSocket server (or client) and send/receive messages.

For example, check out this copied code from the js WS repo. It takes just this code to set up a Node-based WebSocket server:

I can then take that ws connection object and pass it into some worker and send back messages whenever I want to. I can manually ws.send("Batch 123 Complete"), for example, and have our UI display that. No problem.

In Scala, whether I'm using http4s or akka-http, this seems like an impossibility. Maybe I'm too much of a dumb-dumb to figure it out (could be!), but I've spent time in the http4s gitter and reading tons of docs (fs2, shoot me), and the only Scala WS solutions seem to be stream-based: you take a fromClient source, a toClient source, connect them, and that's it. You can't manually do the Scala equivalent of ws.send('some info!') from the server side.

A very kind person in the http4s gitter even went so far as putting together this example to try and help me tackle what I was doing, but ultimately it seems like it doesn't. This is very much a client request -> server response setup. It can't seem to just send messages to the client whenever you want.

Have I missed something about this entirely? I hope I have, because I spent a couple of days learning http4s sockets and fs2 at work and came out with a stream-based implementation that's based on fs2's Scheduler. When a client opens a connection to my WS server, it spawns a worker and sends back status messages every second, but I don't like it :/ Required mutable variables in my code.

Any tips or discussion would be very much appreciated.

0 投票
1 回答
201 浏览

scala - 如何使用根数组解码 Json?

我在弄清楚如何使用库将json带有根数组的 a 解码为案例类时遇到了一些麻烦。json4s-jackson

直接提取到案例类而不是提取到 a 的目的Seq[Username]是在阶段验证单个值的存在decode -> construction,而不是在以后验证。

当根不是数组时,一切正常

工作示例:


但是,当一个 json 有一个根数组时,它开始闻起来很糟糕:

是否有解码根数组的“正确”方法?有什么优雅的方法吗?

0 投票
1 回答
237 浏览

scala - http4s: What is difference between actual and expected value?

versions:

  • http4s: 0.18.1
  • specs2: 4.0.0

I'm using http4s and writing unit test for routers, but there are little documents about headers assertion.

When code below is executed, it can be compiled, but fails.

code:

output:

What is difference between actual and expected value? If it's wrong, please tell me how to make assertion about headers.

0 投票
1 回答
691 浏览

scala - sbt 对依赖项的两个版本进行着色

当我运行测试时,我看到以下错误:

我首先通过明确声明传递依赖项并删除未使用的依赖项以生成以下 build.sbt 来确保清理我的构建文件:

一切都编译了,我的两个测试之一通过了。另一个失败并出现上述错误。这是 sbt 驱逐的输出:

从使用sbt-dependency-graph看来,我需要两个版本的 fs2-core:1.0.00.10.0.

这是我尝试通过在需要它的 http4s 库中重命名 fs2 的旧版本来使用sbt-assembly 着色来处理驱逐。实际上没有使用此构建文件进行编译,因此我猜测我的设置方式存在多个问题。

0 投票
1 回答
444 浏览

json - Apache Camel 中的 Http 请求

我想保存来自 localhost(json data) 的内容示例:

) 在 txt.file 中(Example.txt 中的 C:\inputFolder)。那是我的代码:

;

但是:我的 route1 从 localhost 启动并使用,但它没有将其保存在文本文件中。

你能帮助我吗?

0 投票
1 回答
1047 浏览

scala - Scala:http4s 为在 curl/requests 中工作的相同请求提供 401 Unauthorized

我尝试使用以下代码http4s v0.19.0

我收到以下错误:

不仅如此,我的程序从未退出(我是否必须关闭某些客户端!?)即使我连接了一个日志中间件,它也从未打印过请求

我接下来尝试了@li-haoyi 的请求库,没有返回错误:

上面的代码同样适用,uri所以baseToken不可能是我的令牌是错误的。可以肯定的是,我尝试了 curl:

此问题也发生在http4s v0.18.19(即使使用显式Json和接受标头):

所以我的问题是:

  1. 为什么两者都requests工作curlhttp4s给我 401 相同的请求?
  2. 为什么我的http4s版本永远不会退出?
  3. 为什么请求记录器中间件不记录请求?