首页 > 解决方案 > 即使在 Postman 中获得成功响应,文件的内容也无法正确解码

问题描述

我正在尝试以下与 Documentum REST API 调用相关的工作。我相信问题更多的是解码base64。我认同...

客户端应用程序 -> Documentum API 调用以保存文档

  1. 客户端应用程序调用 API 来“创建”文档——工作正常。

  2. 客户端应用程序然后调用另一个 API 来设置在步骤 1 中创建的文件的内容。文档内容作为“base64”格式的字符串(例如 - UkVRMDA3NTYwOC8gQ0hHMDA0MDkzNyAgLSB==)发送到 Documentum API - 工作正常

  3. 客户端应用程序从另一个 API 获取文档并获取与“base64”格式字符串相同内容的文档。- 工作正常

现在,在第 3 步中,当我必须获取文档时,我希望内容以 utf-8 格式返回。我试图将文件的内容(base64 格式的字符串)解码为 utf-8 可读格式(格式是编码为 base64 之前的实际文件内容)。

我在 Postman 上尝试了下面的代码作为“测试”脚本,但在 Postman 控制台上我没有收到任何错误。

var CryptoJS = require("crypto-js");
var plainText=pm.response.json().attachments;  \\ Taking json response of API call 
//console.log(plainText); \\Gives back base64 formatted which was set as document contents
intermediate = CryptoJS.enc.Base64.parse(plainText); \\Doing parse
var response_txt = CryptoJS.enc.Utf8.parse(intermediate).toString(); \\Changing to utf-8
console.log(response_txt);

当我在 Postman 上执行“发送和下载”时,文件正在下载,但是当我打开文档时出现以下错误。“Adobe Acrobat 无法打开文档,因为文件类型不受支持或文件已损坏(...并且未正确解码)”

我没有得到我做错了什么。[1]:https ://i.stack.imgur.com/FqGP7.png

我想要的只是当我获取对 Documentum 的文档 api 调用时,我希望文档以可读格式返回。

我需要以下指导: js 脚本(如上所示)是否有问题来解码 Postman 上的内容?或者在对 Documentum 进行 API 调用时,我需要做些什么单独的事情吗?

谢谢

标签: javascriptpostmancryptojsdocumentum

解决方案


不知道你在这里做什么。DCTM REST 将公开直接 ACS 链接到内容(二进制)或直接为您提供存储在 DCTM 中的文件,您不需要对编码做任何事情,因为您很可能通过更改编码来破坏文件


推荐阅读