我有一个简单的Azure Logic App,其中包含以下组件:
我尝试配置下一个组件,将HTTP响应正文保存到配置OneDrive连接器的OneDrive连接器,如下所示:
这会出现以下错误:
{"代码":" InvalidTemplate","消息":"无法在行动中处理模板语言表达式' microsoftonedriveconnector&#39 ;输入线#1;'和列' 11':'模板语言表达式无法评估:字符串插值段值之一具有不支持的类型'对象'。请使用'字符串()'将值转换为字符串。功能'"}
如果我然后使用@ {string(身体(' http'))}我得到:
{"代码":" InvalidTemplate","消息":"无法在行动中处理模板语言表达式' microsoftonedriveconnector&#39 ;输入线#1;'和列' 11':'模板语言功能'字符串'使用无效参数调用。该值无法转换为目标类型。'。"}
如何使用HTTP连接器的主体并将其保存到One Drive?
答案 0 :(得分:0)
我没有答案,但我现在正在努力解决这个问题。如果我找到解决方案,我将发布,并且对其他人找到解决方案的情况非常感兴趣。我觉得有一件事很有意思。我的Http连接器的消费端有一个标题和正文选项,它在运行时有效。将该值传递给下一张卡时会出现错误(如上面的海报注释)。但是,当我查看运行选项卡上的输出(链接)时,我会看到标题和正文的json值。这需要包装在json解析器中吗?
答案 1 :(得分:0)
这对我很有用,并在/random/test.txt文件夹中生成了文件,但是我相信你的问题是你正在下载一个JSON文件,导致它被解释为一个对象引擎。 我将跟进团队,也许我们需要一个“ToJson”调用,或者“Passthrough”的方式,或者使“String”更“灵活”(虽然这可能很奇怪)。
"fileContent": {
"Content": "@{body('http')}",
"ContentTransferEncoding": "None"
},
代码视图中的操作如下所示:
"http": {
"type": "Http",
"inputs": {
"method": "GET",
"uri": "http://www.carlosag.net/"
},
"conditions": []
},
"microsoftonedriveconnector": {
"type": "ApiApp",
"inputs": {
"apiVersion": "2015-01-14",
"host": {
"id": "/subscriptions/xxx/resourceGroups/zzz/providers/Microsoft.AppService/apiApps/MicrosoftOneDriveConnector",
"gateway": "https://yyy.azurewebsites.net"
},
"operation": "UploadFile",
"parameters": {
"filePath": "random/test.json",
"fileContent": {
"Content": "@{body('http')}",
"ContentTransferEncoding": "None"
},
"overwrite": true
},
"authentication": {
"type": "Raw",
"scheme": "Zumo",
"parameter": "@parameters('/subscriptions/...')"
}
},
答案 2 :(得分:0)
您应该尝试" @body(' http')"。我相信这会奏效。 " @ {体(' HTTP')}"是字符串插值的一种形式:预期输出值是字符串而不是JSON。