java - Micronaut 客户端 - 具有自定义内容类型的 XML
问题描述
我正在开发一个 Micronaut 应用程序,该应用程序调用一些返回 XML 的遗留服务,其中一些需要自定义内容类型(例如,application/x-foobar+xml;version=1
)。我可以通过执行以下操作设置请求的内容类型:
MediaType mediaType = new MediaType("application/x-foobar+xml;version=1");
FooBarRequest fooBarRequest = new FooBarRequest("baz");
httpClient.exchange(HttpRequest.POST("/foobar", fooBarRequest)
.contentType(mediaType));
但我收到如下错误:
io.micronaut.http.client.exceptions.HttpClientException: Body [FooBarRequest@150fcdba] cannot be encoded to content type [application/x-foobar+xml;version=1]. No possible codecs or converters found.
有关于如何通过配置文件添加其他媒体类型以作为 JSON 或文本处理的文档,但这不适用于 XML。似乎应该有一种方法可以使用自定义媒体类型创建XmlMediaTypeCodec的子类并将其注册到MediaTypeCodecRegistry但该过程没有记录在任何地方。是否有其他人需要做类似的事情并想办法让自定义内容类型与 XML(或除文本和 JSON 之外的任何其他内容)一起使用?
解决方案
推荐阅读
- linux - 如何生成 fullchain.pem 和 privkey.pem?
- excel - 我需要将带有字母和数字的特定字符串从一张纸带到另一张纸上,并按三个字母和数字对它们进行排序
- r - ggplot:根据截距和斜率填充两个geom_abline之间的空间
- java - 如何在 Netbeans 中正确导入项目
- python - 点集之间的平滑线
- node.js - 将 NodeJS 与 monobd 一起使用($all 函数)
- multithreading - Openmp:使用并行执行与 omp_get_thread_num()
- javascript - 如何将自定义错误消息添加到引导日期选择器?
- locust - locust 脚本在客户端发布后返回初始步骤
- batch-file - 如何在批处理文件变量中放置双空格?