UE4 HTTP Request and Response access from BlueprintCallable

Hello everyone, I’m trying to understand delegate logic but couldn’t succeed.
How can I access my http response. I cannot access HTTP->Response in Request function or
OnResponceRecieved function cannot be blueprintcallable. How can I do that? If I have to do with delegate multicast can you show me how can I do this?

.h file


#pragma once

#include "CoreMinimal.h"
#include "Kismet/BlueprintFunctionLibrary.h"
#include "Runtime/Online/HTTP/Public/Http.h"
#include "Runtime/Core/Public/Delegates/Delegate.h"
#include "MyBlueprintFunctionLibrary.generated.h"

/**
*
*/


UCLASS()
class TESTPLUGIN_API UMyBlueprintFunctionLibrary : public UBlueprintFunctionLibrary
{
GENERATED_BODY()
public:
FString ApiBaseUrl;

UFUNCTION(BlueprintCallable, Category = "HTTP")
static void SetBaseURL(FString BaseURL, FString& ApiBaseUrl);

UFUNCTION(BlueprintCallable, Category = "HTTP")
static void RequestCall(FString ApiBaseUrl, FString Subroute);

static void OnResponseReceived(FHttpRequestPtr Request, FHttpResponsePtr Response, bool bWasSuccessful);

};

.cpp file


#include "MyBlueprintFunctionLibrary.h"
#include "Runtime/Json/Public/Json.h"

void UMyBlueprintFunctionLibrary::SetBaseURL(FString BaseURL, FString& ApiBaseUrl) {
ApiBaseUrl = BaseURL;
UE_LOG(LogTemp, Warning, TEXT("BaseURL is worked"));
}

void UMyBlueprintFunctionLibrary::RequestCall(FString ApiBaseUrl, FString Subroute) {
FHttpModule* Http = &FHttpModule::Get();
TSharedRef<IHttpRequest> Request = Http->CreateRequest();
UE_LOG(LogTemp, Warning, TEXT("Request is worked"));
FScriptDelegate Delegate;
Request->OnProcessRequestComplete().BindStatic(UMyBlueprintFunctionLibrary::OnResponseReceived);
Request->SetURL(ApiBaseUrl + Subroute);
Request->SetHeader(TEXT("User-Agent"), TEXT("X-UnrealEngine-Agent"));
Request->SetHeader(TEXT("Content-Type"), TEXT("application/json"));
Request->SetHeader(TEXT("Accepts"), TEXT("application/json"));
Request->ProcessRequest();
}

/*Assigned function on successfull http call*/
void UMyBlueprintFunctionLibrary::OnResponseReceived(FHttpRequestPtr Request, FHttpResponsePtr Response, bool bWasSuccessful)
{
UE_LOG(LogTemp, Warning, TEXT("OnResponseReceived function is ready!!"));
//Create a pointer to hold the json serialized data
TSharedPtr<FJsonObject> JsonObject;

//Create a reader pointer to read the json data
TSharedRef<TJsonReader<>> Reader = TJsonReaderFactory<>::Create(Response->GetContentAsString());
//Deserialize the json data given Reader and the actual object to deserialize
if (FJsonSerializer::Deserialize(Reader, JsonObject))
{
//Get the value of the json object by field name
int32 recievedInt = JsonObject->GetIntegerField("userId");

//Output it to the engine
UE_LOG(LogTemp, Warning, TEXT("Response is coming xP"));
UE_LOG(LogTemp, Warning, TEXT("Id is: %d"), recievedInt);
}
}