Bu makalemizde ise Login olduktan sonra aldığımız Access Token ı kullanarak webapi de authentication gereken bir fonksiyonu tetikleyeceğiz. Bu işlem için ihtiyaç duyacağımız Sql Function unu yazalım.

SQL den Web Uygulamamıza İstek Gönderme

Merhaba, bir önceki makalemizde Mvc deki Web api ye login olma işlemini gerçekleştirmiştik. Bu makalemizde ise Login olduktan sonra aldığımız Access Token ı kullanarak webapi de authentication gereken bir fonksiyonu tetikleyeceğiz. Bu işlem için ihtiyaç duyacağımız Sql Function unu yazalım. 

ALTER function [dbo].[GetHttp]
(
	@url varchar(8000),
	@AccessToken varchar(max)
	
)
returns varchar(8000)
as
BEGIN
    DECLARE @win int 
    DECLARE @hr  int 
    DECLARE @text varchar(8000)

    EXEC @hr=sp_OACreate 'WinHttp.WinHttpRequest.5.1',@win OUT 
    IF @hr <> 0 EXEC sp_OAGetErrorInfo @win

    EXEC @hr=sp_OAMethod @win, 'Open',NULL,'GET',@url,'false' -- Get Methodu ile çağıracağız. 
    IF @hr <> 0 EXEC sp_OAGetErrorInfo @win

    Exec @hr=sp_OAMethod @win, 'setRequestHeader', null, 'Content-Type', 'application/json;charset=UTF-8' -- Content Type ımızı JSON olarak ayarlıyoruz. 
    if @hr<> 0 EXEC  sp_OAGetErrorInfo @win

    Exec @hr=sp_OAMethod @win, 'setRequestHeader', null, 'Authorization', @AccessToken -- Gerekli Güvenlik adımları için elimizde bulunan AccessToken ı header a ekliyoruz.
    if @hr<> 0 EXEC  sp_OAGetErrorInfo @win


    EXEC @hr=sp_OAMethod @win,'Send'
    IF @hr <> 0 EXEC sp_OAGetErrorInfo @win

    EXEC @hr=sp_OAGetProperty @win,'ResponseText',@text OUTPUT -- geri dönen değeri @text değişkenine aktarıyoruz. 
    IF @hr <> 0 EXEC sp_OAGetErrorInfo @win

    EXEC @hr=sp_OADestroy @win 
    IF @hr <> 0 EXEC sp_OAGetErrorInfo @win 

RETURN @text
END

Bu fonksiyonda göreceğiniz gibi dışarıdan iki ayrı parametre gönderiyoruz. Birincisi istekte bulunacağımız URL i yazıyoruz. ikinci parametrede ise Login fonksiyonundan aldığımız accesstoken ı gönderiyoruz. 

İlgili Makaleler

Bu yazıya 0 yorum yapılmış.

Yorum Gönder