sql-server - 从 SQL Server 调用 API [问题]
问题描述
我正在使用 API 和 MSSQL。我需要从 SQL Server 调用 API。但是在执行时,它的响应是空的。如果查询中有一些错误,任何人都可以列出错误吗?
API 会响应,但问题是当我使用完全正确的凭据时,它在身份验证中显示错误。这是一个 POST API。
这是我在谷歌上浏览一整天时发现正确的唯一方法。有人可以帮助或列出错误吗?
DECLARE @authHeader NVARCHAR(MAX)= 'Basic XXXXXXXXXXXXXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXX'
DECLARE @contentType NVARCHAR(64) = 'application/json; charset=utf-8'
DECLARE @appVersion NVARCHAR(20) = '3.2.1'
DECLARE @appkey NVARCHAR(50) = 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'
DECLARE @deviceId NVARCHAR(50) = 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'
DECLARE @deviceType int = 1;
DECLARE @language int = 1;
DECLARE @status NVARCHAR(32);
DECLARE @statusText NVARCHAR(32);
DECLARE @Body as VARCHAR(8000) =
'{
"itemId":"XXXXXXXXXXXXXXXXXXXXXXX",
"itemType":XXXXXXXXXXXXX,
"liked":"true"
}'
DECLARE @responseText NVARCHAR(2000);
DECLARE @token INT;
DECLARE @url NVARCHAR(256) = 'https://api-stage.testapp.com/v4/test';
Exec sp_OACreate 'MSXML2.ServerXMLHTTP', @token OUT;
EXEC sp_OAMethod @token, 'open', NULL, 'POST', @url, 'false'
EXEC sp_OAMethod @token, 'setRequestHeader', NULL, 'Authentication', @authHeader
EXEC sp_OAMethod @token, 'setRequestHeader', NULL, 'Content-type', @contentType
EXEC sp_OAMethod @token, 'setRequestHeader', NULL, 'appVersion', @appVersion
EXEC sp_OAMethod @token, 'setRequestHeader', NULL, 'appkey', @appkey
EXEC sp_OAMethod @token, 'setRequestHeader', NULL, 'deviceId', @deviceId
EXEC sp_OAMethod @token, 'setRequestHeader', NULL, 'devicetype', @deviceType
EXEC sp_OAMethod @token, 'setRequestHeader', NULL, 'language', @language
EXEC sp_OAMethod @token, 'send', null
Exec sp_OAMethod @token, 'setRequestBody', null, 'Body', @body
EXEC sp_OAGetProperty @token, 'status', @status OUT;
EXEC sp_OAGetProperty @token, 'statusText', @statusText OUT;
EXEC sp_OAGetProperty @token, 'responseText', @responseText OUT;
PRINT 'Status: ' + @status + ' (' + @statusText + ')';
PRINT 'Response text: ' + @responseText;
Select @ResponseText as Response
解决方案
推荐阅读
- bash - 查找特定子文件夹的大小
- reactjs - 如何在类组件的 gatsby 中使用 useStaticQuery?
- go - Stackdriver 上未显示自定义 OpenCensus 指标
- dialogflow-es - 如何在对话期间强制谷歌操作切换语言?
- android - 无论我通过什么参数,凌空响应都是相同的
- javascript - React ref 返回 null 信息“下面的值刚刚被评估”
- excel - 我需要宏不断运行
- jquery - Bootstrap 4 表单 HTML 弹出框
- c++ - GLFW 找不到 X11 显示器?
- json - 无法转换类型“DataResponse”的值
'到预期的参数类型'数据'