我正在尝试将 json 数据发送到 rest API,最好是从 SQL Server 2016 发送。我遇到了以下使用 sp_OAMethod 的代码(来自https://gist.github.com/theorigin/fa3c58406ff7b4565ca2)并使用 sp_OAMethod 对其进行了测试webhook.site 所以我知道它发送,但我看不到来自 SQL 的 http 响应代码,这是我需要查看的......如果有问题,有问题的 API 会发送 400 响应以及错误消息提交,如果一切正确,则为 200。
SQL 代码在所有情况下都返回一个 NULL 列。目前,我编写了一个 PHP 应用程序,它为我完成了所有这些工作,只是它不是自动化的。该应用程序通过 csv 文件运行,并一次向端点发送一行 json。在我更改它以查看查询结果而不是 csv 文件之前,以及在我开始考虑将其添加到 cron 作业(或者可能是 Windows 中的计划任务?)之前,我一直想知道我想要实现的目标是否可行使用 SQL Server,这是我所有数据的存储位置。不过,这可能是一个圆钉插入一个方孔,如果是这样,那么我会打折这种方法。
DECLARE @Object AS INT;
DECLARE @ResponseText AS VARCHAR(8000);
DECLARE @Body AS VARCHAR(8000) =
'{
"name": "John",
"age": 30,
}'
EXEC sp_OACreate 'MSXML2.XMLHTTP', @Object OUT;
EXEC sp_OAMethod @Object, 'open', NULL, 'post','https://webhook.site/1234', 'false'
EXEC sp_OAMethod @Object, 'setRequestHeader', null, 'Content-Type', 'application/json'
EXEC sp_OAMethod @Object, 'send', null, @body
EXEC sp_OAMethod @Object, 'responseText', @ResponseText OUTPUT
SELECT @ResponseText
EXEC sp_OADestroy @Object
理想情况下,我会看到“200”或“400”作为每个请求的响应,并且我可以在存储过程运行后解析它们。
非常欢迎任何帮助或建议。谢谢
冉冉说
梦里花落0921