当前位置: 首页 > 知识库问答 >
问题:

akka-http+spray-json客户端json封送

赫连照
2023-03-14

我可以找到许多例子,说明如何让akka-http服务器轻松封送由case类表示的响应实体,只需混合使用SprayJSONSupport/DefaultJSONProtocol,在隐式作用域中提供jsonFormat并在路由DSL中使用complete指令。整齐!

(Source.single(request -> context)
.via(clientFlow)
.runWith(Sink.head).flatMap {
  case (Success(r: HttpResponse), c: T) => Future.successful(r)
  case (Failure(f), c: T) => Future.failed(f)
}, context)
HttpRequest(
        method = HttpMethods.POST,
        uri = "/uri",
        entity = HttpEntity(contentType, """{"iWish":"i was an object"}"""))
complete(StatusCodes.BadRequest, SomeCaseClass(iWish = "i was an object"))

共有1个答案

陶飞鸿
2023-03-14

您可以有如下内容(如果format在范围内)

Marshal(yourObject).to[RequestEntity].map { entity =>
  HttpRequest(
    method = HttpMethods.POST,
    uri = "/uri",
    entity = entity)
}

(此处进一步阅读)

 类似资料:
  • 这是我认为我应该用于这种方法的布局:并且为了适应404路由,还可以使用。现在,如果我的Akka流知识对我有用的话,我需要使用来处理这样的事情,然而,这就是我被困住的地方。 在中,我可以为不同的endpoint进行简单的映射和flatMap,但在流中,这意味着将流划分为多个流,我不太确定该如何进行。我想过使用UnzipWith和Options或通用广播。 如能在这方面提供任何帮助,将不胜感激。 如果

  • 我们尝试在host-connection-pool下调整池、actor实例和所有其他参数的大小,但没有更好的效果。 欢迎任何建议!

  • 我过去成功地使用过Akka Streams,但是,我现在很难理解为什么Akka HTTP中定义了客户端Websocket流,并按照文档中显示的方式工作。 由于WebSocket连接允许全双工通信,我希望这样的连接在Akka HTTP中由两个独立的流表示,一个用于传入流量,一个用于传出流量。事实上,文件说明了以下内容: WebSocket由两个消息流组成[…] 它还指出,传入消息由表示,传出消息由表

  • 我不知道这里有什么问题。我想发出一个响应二进制数据(例如文件下载)而不是JSON的HTTP请求。 这些行是可以的-但需要JSON。 但我需要将响应定义为不是 JSON。 在这里,我遇到了一个问题。我也尝试了“斑点”。我总是在编译时收到一个类型脚本错误。 类型'{resseType:"string";}'的参数不能分配给类型'{Headers?: HttpHeaders|{[head: string

  • 我在使用Jersey客户端(1.11)和JSONConfiguration时遇到了一些问题。要素映射设置为true。我的测试代码如下所示: 在服务器上: 1) 我的网络。xml的POJO映射设置为true。 2) MyFooDTO只是一个如下所示的POJO: 3) MyFooCollectionWrapper如下所示: 我已经验证了服务器在创建Json响应时没有问题。如果将响应类型设置为Strin

  • 问题 你想创建一个 HTTP 客户端。 解决方案 在这个方法中,我们将使用 node.js's HTTP 库。我们将从一个简单的客户端 GET 请求示例返回计算机的外部 IP 。 关于 GET http = require 'http' http.get { host: 'www.google.com' }, (res) -> console.log res.statusCode get