我正在使用Logic App向Azure上的服务总线发送消息。逻辑应用程序以触发器的HTTP请求开始,该请求包含正文中的JSON有效负载。 '身体'请求的设置被设置为发送消息操作的内容。由于在发布时有效负载是JSON我将Content-Type设置为application / json。这会在“发送消息”操作上生成错误;
{"代码":" InvalidTemplate","消息":"无法处理模板语言表达式' Send_message。& #39;输入线#1;'和列' 1221':'模板语言功能' encodeBase64'期望它的参数是一个字符串。提供的值类型为'对象'。有关使用详情,请参阅https://aka.ms/logicexpressions#encodeBase64。'。"}
所以尝试将Content-Type更改为text / plain并且它有效吗?这是一个错误还是应该在发送消息操作中使用它之前以某种方式将JSON转换为文本值?
答案 0 :(得分:1)
向服务总线发送消息要求消息内容为base64编码。由于您的内容是JSON,因此您需要在编码之前明确地对其进行字符串化,即使用@encodeBase64(string(jsonContent))
将内容类型更改为text / plain具有相同的效果,因为在这种情况下,内容将被视为开头的字符串。