通过POST调用向Azure Logic Apps提交表单数据的问题咨询
解决Azure Logic Apps中POST表单参数无法访问的问题
我之前也碰到过一模一样的问题——当你通过POST请求给Logic Apps提交参数后,后续操作里死活找不到这些字段,核心原因大多是触发器没有正确识别请求的结构,也就是没配置对应的JSON Schema来解析请求体。下面一步步给你讲怎么搞定:
1. 先确保请求用JSON格式提交
首先,你的POST请求要把参数放在JSON格式的请求体里,并且请求头的Content-Type必须设为application/json。如果用的是form-data或者x-www-form-urlencoded,Logic Apps的处理逻辑会不一样,但既然你要用到JSON Schema,咱们就统一用JSON格式的请求来配置。
2. 编写对应参数的JSON Schema
在Logic Apps的「当收到HTTP请求时」触发器里,你需要填入请求体的JSON Schema,这样Logic Apps才能自动解析出FileName和FileContent这两个参数,让它们出现在后续操作的动态内容面板里。
这里是针对你的两个参数写的专属Schema:
{ "type": "object", "properties": { "FileName": { "type": "string" }, "FileContent": { "type": "string" } }, "required": ["FileName", "FileContent"] }
简单解释下细节:
type: "object":表示你的请求体是一个标准JSON对象properties里定义了两个字段:FileName和FileContent,都设为字符串类型(如果你的FileContent是Base64编码的文件内容,这个类型刚好适配)required数组是可选配置:如果你希望这两个参数必须存在才能触发流程,就保留;如果允许某一个参数可选,可以把它从数组里移除,甚至直接删掉整个required行。
3. 在Logic Apps中配置触发器
打开你的Logic Apps流程,找到「当收到HTTP请求时」触发器:
- 把上面的JSON Schema粘贴到「请求正文JSON Schema」输入框里
- 保存流程,这时触发器会自动生成对应的动态内容字段——你在后续操作(比如Compose、Create File等)里,就能直接从动态内容面板里选中
FileName和FileContent了。
4. 测试请求的示例写法
比如用curl发送请求的话,命令大概是这样:
curl -X POST \ https://your-logic-app-endpoint.azurewebsites.net/api/your-trigger-path \ -H 'Content-Type: application/json' \ -d '{ "FileName": "test-document.pdf", "FileContent": "JVBERi0xLjMKJcfsj6IKNSAwIG9iago8PC9MZW5ndGggNiAwIFIvRmlsdGVyIC9GbGF0ZURlY29kZT4+CnN0cmVhbQp4nE2NuwoCQQxF+/m..." }'
这里的FileContent是Base64编码后的文件内容,你可以用在线工具或者本地脚本把文件转成Base64再填进去。
快速验证参数是否可访问
你可以在触发器后面加一个「Compose」操作,把FileName和FileContent拖到Compose的输入框里,运行流程后查看Compose的输出,如果能正确显示你提交的参数,就说明配置完全成功了。
内容的提问来源于stack exchange,提问作者Rahul Chavan
相关产品推荐
相关产品推荐

