Azure Logic应用程序:通过http发送时文件损坏

时间:2019-02-25 19:08:03

标签: azure soap azure-logic-apps azure-blob-storage

我正在使用逻辑应用程序调用Connectwise Document API,以将图像,pdf,电子邮件等附加到票证。我可以直接通过邮递员调用端点,并且一切正常,当我尝试在Logic Apps中复制请求时,看起来一切正常,但是当我最后获得文件(附加到Connectwise票证上)时,图像,Excel工作表,无论损坏了什么。文本附件可以以某种方式工作。

逻辑应用程序侦听邮箱,因此我一直在提取附件并将​​其上传到BLOB存储中,并在我的请求中发送该文件的文件内容(通过GET BLOB获取)。当文件存储在天蓝色的存储区中时,它们就可以了(我可以下载它们并通过邮递员发送,它们可以很好地显示出来)。

有什么想法吗?下面的详细信息(对不起,我不确定图像在堆栈溢出时如何工作):

Blob Cycle

HttpRequest

这是代码表示形式:

------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Dis-data; name="recordId"

@{body('Extract_Ticket_Id')['id']}
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Dis-data; name="recordType"

Ticket
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Dis-data; name="title"

@{items('For_each')['Name']}
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Dis-data; name="file"; filename="@{items('For_each')['Name']}"

@{body('Get_Attachment')}
------WebKitFormBoundary7MA4YWxkTrZu0gW--

获取Blob是从存储中获取我的Blob的最好方法吗?我还没有找到其他方法,感觉这应该可行。

在此先感谢您的帮助!让我知道您是否需要更多详细信息!

〜乔什

PS:这里也有类似的问题,但是由于我无权访问服务器,因此我不知道存在相同的问题:Azure logic app http post multipart/form-data file upload

示例生成的请求:

“标题”:{“授权”:“ 已消毒”,“内容类型”:“多部分/表单数据;边界= ------------ -------------- 784847071658899446745122“}

"body":"----------------------------784847071658899446745122\nContent-Disposition: form-data; name=\"file\"; filename=\"Email to Ticket Review.xlsx\"\nContent-Type: image/png\n\nPK\u0003\u0004\u0014\u0000\u0006\u0000\b\u0000\u0000\u0000!\u0000��`��\u0001\u0000\u0000:\u0007\u0000\u0000\u0013\u0000\b\u0002[Content_Types].xml 

(blob内容持续一段时间)

\n----------------------------784847071658899446745122\nContent-Disposition: form-data; name=\"recordType\"\n\nTicket\n----------------------------784847071658899446745122\nContent-Disposition: form-data; name=\"title\"\n\nEmail to Ticket Review.xlsx\n----------------------------784847071658899446745122\nContent-Disposition: form-data; name=\"recordId\"\n\n1257561\n----------------------------784847071658899446745122--"}

1 个答案:

答案 0 :(得分:0)

您需要切换到代码视图来手动应用此功能,最终的 HTTP 正文应如下所示:

“body”: “@{base64ToBinary(items(‘For_each’)?[‘ContentBytes’])}”,