2

我想做一个从 Apex 到 salesforce 本身的多部分帖子以获取图像。Salesforce 需要图像的二进制数据。但是,作为多部分约定的一部分,我们需要在标题前加上边界并附加页脚,以便接收端(在这种情况下为 salesforce)可以解析相同的内容并处理数据(在这种情况下为图像)。问题是图像是一个blob,页眉和页脚是字符串。而且我们不能在 Apex 中直接连接这 3 个部分以发送到 SF。

有类似问题的人建议的一种可能方法是使用 base64encoded 将 blob 转换为字符串并连接页眉和页脚。这很好并且有效,但只有 33% 的时间。原因是如果源 blob 数据字节不是 3 的精确倍数(这就是 base64 编码的工作方式),base64 编码会在末尾附加“=”或“==”符号来填充。因此,如果在编码时附加这些填充字符,则会产生问题。我没有办法解决这个最后的问题,我收到了 SF 的 400 个错误请求。@Nerd 在他的博客中提出了一种方法,但可以将错误从 400 解决为成功的 201 返回值。但背景问题是删除“=”字符的方式实际上破坏了blob数据,

为避免上述串联问题,我还尝试将 Content-Transfer-Encoding 设置为“base64”,并仅将图像作为 base64encoded 和页眉/页脚作为普通字符串发送,但是该请求也会产生 500 服务器错误。

有没有人遇到过任何类似的问题,或者有任何解决方法的指针,用于将页眉、页脚字符串连接到 blob 正文或解析填充的“=”字符而不破坏数据。或者有没有人成功地尝试使用 base64 作为 Content-Transfer-Encoding 方法来发送多部分帖子?非常感谢任何帮助。

卡迈勒

4

1 回答 1

0

Check This 实际上博客文章完全具有不同的上下文,但它确实显示了可能对您有帮助的格式转换。或者您需要等到 Salesforce 实施此想法https://success.salesforce.com/ideaView?id=08730000000Kr80AAC

于 2013-12-09T11:45:56.080 回答