netsuite - 如何在 SuiteScript 2 Suitelet 中将 NetSuite 文件作为字节数组获取?
问题描述
我正在从 NetSuite Suitelet 向 Square Connect API 发送数据。我正在使用 SuiteScript 2。
我需要通过 HTTP POST 将 NetSuite 文件柜中的图像文件发送到 Square。根据https://docs.connect.squareup.com/api/connect/v2#endpoint-v1items-uploaditemimage上的 Square 文档,数据需要以多部分形式作为二进制数据发送。
多亏了https://stackoverflow.com/a/46964827/127434 ,我想我已经让多部分表单工作了。
但是,我还没有弄清楚如何将文件数据转换为 Square 可以接受的二进制格式。Square 抱怨:“无效的多部分表单数据”。
我很乐意收到建议。
解决方案
我相信 file.getContents() 返回二进制文件的 base64 编码。
因此,在您的多部分设置中,尝试在文件内容数据之前设置 Content-Transfer-Encoding。
见https://www.drupal.org/project/smtp/issues/2909678
所以在你上面提到的我的回答中你会尝试:
if (partIsFile) {
body.push(getContentType(p.value));
if(partIsBinary(p.value)) body.push('Content-Transfer-Encoding:base64');
}
推荐阅读
- java - 如何在spring webflux webclient中发送“一劳永逸”的请求?
- regex - 重定向 301:如何从 Nginx 转换为 Apache
- javascript - 如何在 extJS 组合框中设置 store 的特定索引值
- android - 必须引用包含私钥和相应公钥证书链的有效 KeyStore 密钥条目
- ios - 减少 Firebase 实时数据库负载
- mips - 当我加载自己的文件时 QtSpim 没有响应并在加载其他文件时抛出错误
- javascript - Bootstrap + Masonry 不正确的堆叠图像
- machine-learning - 使用差价时消失
- webrtc - STUN 如何对候选对执行 ICE 连接检查?
- sql - 使用 SQL Group By 或 Window Function 按时间顺序分析行?