找回密码
 立即注册
查看: 556|回复: 0

SQLSERVER调用WebAPI和WebService

[复制链接]

194

主题

0

回帖

986

积分

管理员

积分
986
发表于 2024-10-29 13:40:27 | 显示全部楼层 |阅读模式
  1. ----MSSQL调用API接口函数
  2. CREATE/ALTER PROCEDURE [dbo].[ProS3_CallWebApi]
  3.     @ApiUrl VARCHAR(200), --api请求地址
  4.     @BodyJsom varchar(max),
  5.     @ResponseText NVARCHAR(4000) OUTPUT
  6. AS
  7. BEGIN

  8.        SET NOCOUNT ON;           
  9.        Declare @Object as Int
  10.   Exec sp_OACreate 'Msxml2.ServerXMLHTTP.3.0', @Object OUT;
  11.   Exec sp_OAMethod @Object, 'open', NULL, 'POST',@ApiUrl,'false'
  12.   Exec sp_OAMethod @Object, 'setRequestHeader', NULL, 'Content-Type','application/json'
  13.   Exec sp_OAMethod @Object, 'setRequestHeader', NULL, 'Accept','S3YiFeiAPI'
  14.   Exec sp_OAMethod @Object, 'send', NULL, @BodyJsom   --发送数据
  15.   Exec sp_OAMethod @Object, 'responseText', @ResponseText OUTPUT
  16.   --EXEC sp_OAGetErrorInfo @Object --异常输出
  17.   Exec sp_OADestroy @Object  -- 释放对象
  18.   
  19. END

  20. ---------MSSQL调用函数


  21. declare @ApiUrl as varchar(200)
  22. set @ApiUrl = 'http://192.168.56.122:9023/YiFeiAPI?ApiName=GetSQL&ApiType=GET'
  23. DECLARE @BodyJsom varchar(max)
  24. set @BodyJsom ='{ "xFields": "MB001,MB002,MB064", "xDBTabel": "DEMO..INVMB", "xWhere": "MB001 IN (''21001'',''21002'')", "xGroup": "MB001,MB002,MB064", "xOrder": "MB001 DESC"}'   
  25. DECLARE  @ResponseText NVARCHAR(4000)
  26. Exec S3DB..[ProS3_CallWebApi] @ApiUrl,@BodyJsom,@ResponseText OUTPUT
  27. select @ResponseText
复制代码




  1. 开启组件
  2. sp_configure 'show advanced options', 1;
  3. GO
  4. RECONFIGURE;
  5. GO
  6. sp_configure 'Ole Automation Procedures', 1;
  7. GO
  8. RECONFIGURE;
  9. GO
  10. EXEC sp_configure 'Ole Automation Procedures';
  11. GO
复制代码


  1. declare @ServiceUrl as varchar(1000)
  2. set @ServiceUrl = 'http://172.16.170.192:803/api/wardRound/GetInfo'
  3. DECLARE @data varchar(max);
  4. --发送数据
  5. set @data='{"ID": 67,"UserID": 10}'                  

  6. Declare @Object as Int
  7. Declare @ResponseText AS  varchar(8000)   ;      
  8. Exec sp_OACreate 'Msxml2.ServerXMLHTTP.3.0', @Object OUT;
  9. Exec sp_OAMethod @Object, 'open', NULL, 'POST',@ServiceUrl,'false'
  10. Exec sp_OAMethod @Object, 'setRequestHeader', NULL, 'Content-Type','application/json;charset=UTF-8'
  11. Exec sp_OAMethod @Object, 'send', NULL, @data --发送数据
  12. Exec sp_OAMethod @Object, 'responseText', @ResponseText OUTPUT
  13. --EXEC sp_OAGetErrorInfo @Object --异常输出
  14. Select  @ResponseText
  15. Exec sp_OADestroy @Object
  16. GO
复制代码


  1. DECLARE @sUrl NVARCHAR(100)=N'http://127.0.0.1/WebService/Dye.asmx?op=ColorSystem'

  2. DECLARE @sSoapContent NVARCHAR(2000)=N''

  3. SELECT @sSoapContent=N'<?xml version="1.0" encoding="utf-8"?>
  4. <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  5.   <soap12:Body>
  6.     <ColorSystem xmlns="http://tempuri.org/">
  7.       <iCompanyId>1</iCompanyId>
  8.       <sColorNo>2</sColorNo>
  9.     </ColorSystem>
  10.   </soap12:Body>
  11. </soap12:Envelope>'

  12. DECLARE @sResult NVARCHAR(MAX)
  13. SELECT @sResult=dbo.fnpbWebServiceInvoke(@sUrl,N'',N'',@sSoapContent).value(N'(/Result[1])','NVARCHAR(MAX)')
  14. SELECT @sResult=REPLACE(@sResult,N'"',N'')
  15. SELECT @sResult=REPLACE(@sResult,N'{',N'')
  16. SELECT @sResult=REPLACE(@sResult,N'}',N'')
  17. SELECT @sResult=REPLACE(@sResult,N'[',N'')
  18. SELECT @sResult=REPLACE(@sResult,N']',N'')
复制代码



  1. Create PROCEDURE [dbo].[Proc_CallWebApi]
  2.     -- Add the parameters for the stored procedure here
  3.     @ApiUrl VARCHAR(200), --api请求地址
  4.     @RequestType VARCHAR(5),--请求类型:POST,GET
  5.     @ResponseText NVARCHAR(4000) OUTPUT
  6. AS
  7. BEGIN
  8.     -- SET NOCOUNT ON added to prevent extra result sets from
  9.     -- interfering with SELECT statements.
  10.     SET NOCOUNT ON;

  11.     -- Insert statements for procedure here
  12.     DECLARE @data varchar(8000);
  13.     --发送数据
  14.     set @data=''

  15.     Declare @Object as Int
  16.     Exec sp_OACreate 'Msxml2.ServerXMLHTTP.3.0', @Object OUT
  17.     Exec sp_OAMethod @Object, 'open', NULL, @RequestType,@ApiUrl,'false'
  18.     IF @RequestType='POST'
  19.     BEGIN
  20.         Exec sp_OAMethod @Object, 'setRequestHeader', NULL, 'Content-Type','application/x-www-form-urlencoded'
  21.     END
  22.     Exec sp_OAMethod @Object, 'send', NULL, @data --发送数据
  23.     Exec sp_OAMethod @Object, 'responseText', @ResponseText OUTPUT
  24.     --EXEC sp_OAGetErrorInfo @Object --异常输出
  25.     --Select  @ResponseText as ResponseText
  26.     --Select * from [dbo].[ParseJSON](@ResponseText)
  27.     Exec sp_OADestroy @Object

  28. END
复制代码




https://www.cnblogs.com/wangdongying/p/16903215.html
商务合作
业务洽谈
Wechat:S3-SH-CN  
QQ群:128669090
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|S3软件

GMT+8, 2026-6-6 07:48 , Processed in 0.043815 second(s), 18 queries .

Powered by S3

©2001-2025 S3 Team.

快速回复 返回顶部 返回列表