我正在使用Spring 5 WebClient进行一个外部api调用,希望将响应映射到这样的Object:
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public static class Response {
private long length;
}
private Mono<Response> getResponse() {
return webClient.get()
.uri("someURI")
.accept(MediaType.APPLICATION_JSON_UTF8)
.retrieve()
.bodyToMono(Response.class);
}
但是我收到一个错误:
org.springframework.web.reactive.function.UnsupportedMediaTypeException: Content type 'application/octet-stream' not supported
但是,如果我像这样将响应正文提取到字符串:
private Mono<String> getResponse() {
return webClient.get()
.uri("someURI")
.accept(MediaType.APPLICATION_JSON_UTF8)
.retrieve()
.bodyToMono(String.class);
}
然后它就正常工作了。有什么办法解决这个问题吗?
编辑:
响应正文:
{
"blocks": [
{
"height": 545551,
"size": 48289,
"virtualSize": 48289,
"hash": "000000000000000000541d265115ec188544420c4b0e5dff6f2171e17e4991c9",
"time": 1535551238,
"txlength": 80,
"poolInfo": {}
}
],
"length": 1,
"pagination": {
"next": "2018-08-30",
"prev": "2018-08-28",
"currentTs": 1535587199,
"current": "2018-08-29",
"isToday": true,
"more": true,
"moreTs": 1535587200
}
}
标题:
status: 200 OK
如果 HTTP 响应没有内容类型
标头,则客户端将假定应用程序/八位字节流
,这不是 Spring WebFlux 中的杰克逊编解码器支持的内容类型。
所以您看到的行为是预期的,web API应该被修复以添加响应头。
我正在使用HTMLUnit创建scrape网站。我正在使用htmlunit-2.19版本。我知道这是一个重复的问题,但相信我,我尝试了我在谷歌找到的所有解决方案,但我仍然得到了这个例外。请参见以下例外情况 我在谷歌上研究过,我发现了很多关于这个异常的解决方案,我尝试过所有的解决方案,但没有一个解决方案是有效的。 请参阅下面的解决方案,我已经应用 解决方案1 解决方案2: 我找到了其他解决方案,它们
如果我试图转换成字符串,它工作得很好。下面的代码 我期待API的响应如下 }
我在尝试使用“create”创建WebClient实例的线路上收到一个NoClassDefFoundError。尝试了builder(),但仍然是一样的。 请告诉我添加的依赖项有什么问题,以及如何解决这个问题。 我添加的依赖项是 StackTrace:
我想在以下条件下抛出自定义异常: > 如果我得到了json格式的正确错误响应,我想反序列化它,并在onStatus()中抛出名为CommonException的异常 如果作为响应的一部分接收HTML内容或反序列化未成功执行,则我希望抛出GenericeException,这是我在onErrorMap()中创建的 在抛出GenericException时,我希望将从下游响应获得的相同HttpStat
问题内容: 我正在尝试使用Webflux将生成的文件流式传输到另一个位置,但是,如果文件的生成遇到错误,则api返回成功,但是DTO在生成文件而不是文件本身时会详细说明错误。这使用的是非常古老且设计不佳的api,因此请原谅post和api设计的使用。 api调用(exchange())的响应是ClientResponse。从这里,我可以使用bodyToMono转换为ByteArrayResourc
我试图通过使用Java+Spring+WebFlux开始反应性编程。 当我在endpoint上调用时,我得到一个 下面是上的服务层 我还尝试删除和中的concinting,但没有成功。