带有文本 html响应的反应式WebClient GET请求

带有文本 html响应的反应式WebClient GET请求,第1张

带有文本/ html响应反应式WebClient GET请求

让服务发送带有

"text/html"
Content-Type的JSON 是非常不寻常的。

有两种方法可以解决此问题:

  1. 配置Jackson解码器也可以解码
    "text/html"
    内容;查看
    WebClient.builder().exchangeStrategies(ExchangeStrategies)
    设置方法
  2. 快速更改“ Content-Type”响应标头

这是第二种解决方案的建议:

WebClient client = WebClient.builder().filter((request, next) -> next.exchange(request)     .map(response -> {         MyClientHttpResponseDecorator decorated = new   MyClientHttpResponseDecorator(response);          return decorated;     })).build();class MyClientHttpResponseDecorator extends ClientHttpResponseDecorator {  private final HttpHeaders httpHeaders;  public MyClientHttpResponseDecorator(ClientHttpResponse delegate) {    super(delegate);    this.httpHeaders = new HttpHeaders(this.getDelegate().getHeaders());    // mutate the content-type header when necessary  }  @Override  public HttpHeaders getHeaders() {    return this.httpHeaders;  }}

请注意,您仅应在该上下文中(对于此主机)使用该客户端。如果可以的话,我强烈建议您尝试修复服务器返回的那种奇怪的内容类型。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5093713.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-16
下一篇 2022-11-16

发表评论

登录后才能评论

评论列表(0条)

保存