【问题标题】:converting base64 to a PDF file and passing in a webservice in JAVA将 base64 转换为 PDF 文件并在 JAVA 中传入 web 服务
【发布时间】:2012-10-30 12:20:42
【问题描述】:

我有一个 Web 服务,它返回一个 PDF 文件的 base 64 表示。 我想编写另一个 web 服务,它将接收 base64 字符串并将 base 64 转换回 PDF 文档,并将这个 PDF 文档传回给 web 服务的调用者。全部在 JAVA 中。 考虑到我实际上不会将 PDF 保存到文件位置,这可能吗?我想避免共享网络文件位置。到目前为止,我能找到的所有建议都是关于文件,但使用的是文件路径,而不是实际的文件对象。

我可以使用标准的 JAVA 类而不是扩展吗?

谢谢

【问题讨论】:

  • 您事先知道PDF文件有多长吗?或者您可以在解码时在本地缓存(在内存中或磁盘上)吗?通常,流式 base 64 解码没有问题,但 Web 服务结果标头通常包含内容长度;因此我的问题...

标签: java web-services pdf base64


【解决方案1】:

你可以这样做,但你为什么要这样做?解码 base64 是一项非常基本的任务,因此将其卸载到 Web 服务几乎没有意义 - 首先调用 Web 服务所需的基础设施极有可能包含/提供 base64您可以在客户端本地使用的解码器。

(您解码的编码字节恰好是 PDF 文档并不重要)。

【讨论】:

  • 嗨 Henning,你能解释一下你的意思吗?我们使用WSO2调用web服务,但可能使用其他工具,我们不能总是指定,这取决于客户端。
  • 我的意思是很难想象任何客户端平台能够发出HTTP请求但不能自行编码和解码base64。例如,Content-MD5WWW-Authenticate HTTP 标头(后者具有基本身份验证)包含 base64 编码数据,因此 HTTP 协议栈肯定会在某处放置编码器和解码器。它通常比实际的“Web 服务”框架处于较低级别。
  • 基本上唯一可以想象的原因是 pdf 将被 Web 应用程序直接引用,或者应该使用 pdf 的客户端程序真的很笨。
  • 再次您好,感谢您的回答。这是有道理的——只通过网络传递二进制或字节数据。网络服务本身不引用 PDF,正确。
  • 但是 - 我想要一个独立的服务。我想调用一个服务,它只获取我的 XML 文件、读取数据、根据其中一些数据和其他内容创建 PDF,然后将 PDF 文件传回给我。我不想关心编码和解码——我为什么要这样做?
猜你喜欢
  • 2012-10-14
  • 2016-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多