You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Akka Route TestKit无法将响应反序列化为String如何解决

问题原因

你的接口返回的400错误响应Content-Type为text/plain,而Akka Route TestKit默认提供的String类型反序列化器仅支持application/json类型的响应,所以触发了不支持Content-Type的异常。

解决方案

提供两种可直接落地的修改方式:

方式1:导入通用String反序列化器(推荐)

直接在测试代码的导入部分添加以下引用,该反序列化器支持任意文本类型的响应转String,无需修改原有测试逻辑:

import akka.http.scaladsl.unmarshalling.PredefinedFromEntityUnmarshallers.stringUnmarshaller

添加导入后你的原有测试代码无需其他调整即可正常运行。

方式2:直接读取响应实体内容(无需依赖隐式反序列化器)

如果你不想额外导入反序列化器,可以直接从响应实体中提取字符串内容,跳过反序列化的Content-Type校验,修改后的测试代码如下:

"fail if date is wrongly formatted" in {
    val endpoint = s"/api/prof?date=wrongdate"
    Get(endpoint) ~> check {
      status shouldBe StatusCodes.BadRequest
      // 直接读取实体的UTF-8字符串内容
      val resp = response.entity.data.utf8String
      resp shouldBe "could not be parsed"
    }
 }

内容的提问来源于stack exchange,提问作者K D

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 05:24:04