Azure Logic App读取Service Bus消息调用REST API遇HTTP 400错误求助
解决Azure Logic App调用REST API时因Service Bus消息编码导致的HTTP 400错误
直接解码ContentData作为API请求体
别直接传Service Bus触发器返回的整个消息对象,在HTTP动作的请求体里选「表达式」,输入下面的代码解码Base64格式的ContentData:decodeBase64(triggerBody()?['ContentData'])解码后的内容就是你原本存在Service Bus里的原始JSON,和Postman里能用的内容完全一致。
检查并修正请求头
确保HTTP动作的Content-Type头设为application/json,删掉自动生成的Content-Transfer-Encoding这类多余头,避免API收到错误的编码声明。验证解码结果是否正确
在HTTP动作前面加个「Compose」动作,把解码表达式的结果丢进去,跑一次Logic App看看Compose的输出,确认和Postman里成功发送的JSON完全一致,排除消息本身有问题或者解码出错的情况。可选:转成JSON对象发送
如果API要求接收JSON对象而非字符串,就在解码后再加一层json()转换:json(decodeBase64(triggerBody()?['ContentData']))这样Logic App会把字符串解析成标准JSON对象,保证请求结构完全符合API要求。
内容的提问来源于stack exchange,提问作者Shiraz Bhaiji
相关产品推荐
相关产品推荐

