Sqlserver調用api 方法及示例

雖然使用sqlserver去調用服務接口的情況比較少,但也可以去了解下對應的使用情況

一、首先要開啓組件的配置

按 Ctrl+C 複製代碼

 

按 Ctrl+C 複製代碼

 

二、調用webservice

1、接口信息獲取

調用webservice的時候建議使用fiddler去獲取一下發送數據過程用contenttype的類型以及調用接口的數據

2、使用sqlserver調用對應的接口以及結果

複製代碼

declare @ServiceUrl as varchar(1000) 
set @ServiceUrl = 'http://localhost:19930/LoginWebService.asmx/Login'
DECLARE @data varchar(max);
set @data='username=8&password=7'                  

Declare @Object as Int
Declare @ResponseText AS  varchar(1000)   ;      
Exec sp_OACreate 'Msxml2.ServerXMLHTTP.3.0', @Object OUT;
Exec sp_OAMethod @Object, 'open', NULL, 'POST',@ServiceUrl,'false'
Exec sp_OAMethod @Object, 'setRequestHeader', NULL, 'Content-Type','application/x-www-form-urlencoded'
Exec sp_OAMethod @Object, 'send', NULL, @data --發送數據
Exec sp_OAMethod @Object, 'responseText', @ResponseText OUTPUT
EXEC sp_OAGetErrorInfo @Object --異常輸出
Select  @ResponseText 
Exec sp_OADestroy @Object
GO

複製代碼

三、調用webapi

 兩者調用的方式基本如出一轍

1、接口信息獲取

同樣使用fiddler獲取接口調用信息(因爲該接口是GET就不需要看所傳的參數)

2、接口調用以及結果

GET操作

複製代碼

declare @ServiceUrl as varchar(1000) 
set @ServiceUrl = 'http://xxxxx.com/beijing/139/1000000/TaxInfo?token=6d83d2adcff64594bd68614b6ae9e1c8'
DECLARE @data varchar(max);
set @data=''                  

Declare @Object as Int
Declare @ResponseText AS  varchar(8000)   ;      
Exec sp_OACreate 'Msxml2.ServerXMLHTTP.3.0', @Object OUT;
Exec sp_OAMethod @Object, 'open', NULL, 'GET',@ServiceUrl,'false'
Exec sp_OAMethod @Object, 'send', NULL, @data --發送數據
Exec sp_OAMethod @Object, 'responseText', @ResponseText OUTPUT
EXEC sp_OAGetErrorInfo @Object --異常輸出
Select  @ResponseText 
Exec sp_OADestroy @Object
GO

複製代碼

 

POST操作

按 Ctrl+C 複製代碼

 

按 Ctrl+C 複製代碼

  

 

示例:

declare @ServiceUrl as varchar(1000) 
set @ServiceUrl = 'http://36.33.216.237:8081/c/dict/getAllInstitutions' --restful api 接口
DECLARE @data varchar(max);
set @data=''   --入參
Declare @Object as Int
Declare @ResponseText AS  varchar(8000)   ;      
Exec sp_OACreate 'Msxml2.ServerXMLHTTP.3.0', @Object OUT;
Exec sp_OAMethod @Object, 'open', NULL, 'POST',@ServiceUrl,'false'
Exec sp_OAMethod @Object, 'setRequestHeader', NULL, 'Content-Type','application/json;charset=UTF-8'
Exec sp_OAMethod @Object, 'send', NULL, @data --發送數據
Exec sp_OAMethod @Object, 'responseText', @ResponseText OUTPUT
--EXEC sp_OAGetErrorInfo @Object --異常輸出
Select  @ResponseText as  Response
Exec sp_OADestroy @Object
GO

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章