java - 已将字符串编码为 DataHandler

标签 java web-services encoding datahandler

查看 a similar SO Post about String and DataHandlers 后,我在效率方面遇到了问题。我的网络服务中有一个已经编码的字符串。我需要将此字符串转换为 DataHandler 以放入 POJO 中并发送到另一个服务。当我使用 new ByteArrayDataSource(String, type) 时,它正在对已经编码的字符串进行编码(第二次)。

为了解决这个问题,我对输入进行解码,然后将创建的 byte[] 传递到 new ByteArrayDataSource(byte[], type) 中。我担心当我已经传入编码版本时,必须解码和重新编码图像时会造成性能损失。有没有办法从已经编码的字符串创建 DataHandler (或 DataSource),而不需要“MIME 类型”,这样我就不必解码来编码?

我尝试过使用FileDataSource(String),但这不起作用,在具有解码字符串的工作ByteArrayDataSource(byte[], String)中使用相同的输入。我还尝试使用 ByteArrayDataSource(String, type) 传递类型的空白字符串。

最佳答案

经过更多搜索后,我发现了一个可以执行此操作的 Apache 库,但我不确定它的效率会高多少。 Apache Axis2 has a ConverterUtil class看起来有很多字符串的二进制操作方法。

进一步研究该代码,convertToDataHandler(String) 的代码只是将字符串传递给 convertToBase64Binary(String) 函数。这只是通过解码字符串从字符串创建一个新的 ByteArrayDataSource,然后继续。所以该实用程序只是包装了我已经在做的功能。

关于java - 已将字符串编码为 DataHandler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22922423/

相关文章:

java - 您应该将扩展 Application 的类放置在 jax.rs 中的何处

encoding - fortran中双引号和单引号的区别?

url - URL方案/主机/路径中的 `+`是否代表空格?

java - 如何从列表创建对象的二维数组?

java - 为 HashMap 中存在的每个条目设置超时

java - 没有 @XMLRootElement 的 JAXB 编码和解码子元素

web-services - 设置 Content-Type 以从 Firefox 进行测试

encoding - Media Foundation H264 编码器的 CLSID 在哪里?

java - 关闭 selenium java 中的弹出窗口

java - spring boot缓存redis,key有\xac\xed\x00\x05t\x00\x06