sql server 利用存儲過程http請求調用URL鏈接訪問方法


sp_configure 'show advanced options', 1; GO
RECONFIGURE; GO sp_configure 'Ole Automation Procedures', 1; GO
RECONFIGURE; GO
EXEC sp_configure 'Ole Automation Procedures'; GO

開啟權限配置

DECLARE    @return_value int, @status int

EXEC    @return_value = [dbo].[P_HttpRequestData]
        @URL = N'https://test.GoldApi.com/Api/GetGoldSales', @status = @status OUTPUT SELECT    @status as N'@status'

調用存儲

USE [Test]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[P_GetGoldSales] 
AS
set nocount on               
set transaction isolation level read uncommitted               
set xact_abort on 

exec [P_HttpRequestData] 'https://test.GoldApi.com/Api/GetGoldSales'

存儲調用存儲

USE [Test]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[P_HttpRequestData]

( @URL varchar(500), @status int=0 OUT,
@returnText nvarchar(2000)='' OUT )
AS BEGIN DECLARE @object int,--聲明變量 @errSrc int --聲明變量 /*初始化*/ EXEC @status = SP_OACreate 'Msxml2.ServerXMLHTTP.3.0', @object OUT; IF @status <> 0 BEGIN EXEC SP_OAGetErrorInfo @object, @errSrc OUT RETURN END /*創建鏈接*/ EXEC @status= SP_OAMethod @object,'open',NULL,'GET',@URL IF @status <> 0 BEGIN EXEC SP_OAGetErrorInfo @object, @errSrc OUT RETURN END EXEC @status=SP_OAMethod @object,'setRequestHeader','Content-Type','application/x-www-form-urlencoded' /*發起請求信息*/ EXEC @status= SP_OAMethod @object,'send',NULL IF @status <> 0 BEGIN EXEC SP_OAGetErrorInfo @object, @errSrc OUT RETURN END
/*獲取返回*/  
  EXEC @status= SP_OAGetProperty @object,'responseText',@returnText OUT
   IF @status <> 0   
BEGIN   
EXEC SP_OAGetErrorInfo @object, @errSrc OUT  
  RETURN
   END
END;

 創建http請求的存儲過程

 

訪問URL地址的 API控制器中創建方法

 

 public void GetGoldSales(DataRequest<int> request, DataResponse<ResultModel> response)
        {
            var result = new ResultModel();
            result.Status = ResultStatus.Success;
            result.Message = "獲取信息成功!";
            try
            {
var Goldno =string.Empty();
var List = GetList(request.ObjectData); if (List.Count > 0) {foreach (var item in List) { Goldno+= item + "\r\n"; } if (Goldno!=null) { var str = $"貨物上架的銷售價格異常\r\n 異常貨品編號:\r\n{Goldno}請及緊急查看並修復!"; SendErrorMsg(str); } } } catch (Exception ex) { result.Status = ResultStatus.Fail; result.Message = "獲取銷售價格信息失敗!" + ex.Message; } response.ObjectData = result; }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM