calling Azure function in Plugin

Mounika Nallapati 61 Reputation points
2021-07-08T19:26:14.19+00:00

This is my code in the plugin to call Azure function

getting this exception:

System.Security.SecurityException: 'Request for the permission of type 'System.Security.Permissions.SecurityPermission, mscorlib, Version=4.0.0.0, Culture=neutral

AccountRequest accountRequest = new AccountRequest()
{
name ="Azure fun from plugin",
telephone1="9150871106",
accountnumber="0987"
};
RestClient client = new RestClient("https://techxact.azurewebsites.net/api/");
client.AddDefaultHeader("Content-type", "application/json");
RestRequest request = new RestRequest("Function2?code=ET4Kb0ksewZaB5RRMwrqrSrPQ3ym0SHBcVflUms1w34eEaLxcZ2QWg==",Method.POST);
var jsonBody = JsonConvert.SerializeObject(accountRequest);
request.AddParameter("application/json", jsonBody, ParameterType.RequestBody);
IRestResponse result = await client.ExecuteAsync(request);

Azure Functions
Azure Functions
An Azure service that provides an event-driven serverless compute platform.
5,908 questions
0 comments No comments
{count} votes

Accepted answer
  1. Jaliya Udagedara 2,836 Reputation points MVP Volunteer Moderator
    2021-07-09T00:11:23.37+00:00

    I am not sure where the class RestClient is coming from. You might be using an external library. It's very likely the BaseAddress you are using is incorrect. /api doesn't fall into BaseAddress.

    I just tested the function using HttpClient and it appears to be working fine.

       class Program  
       {  
           static async Task Main(string[] args)  
           {  
               var accountRequest = new AccountRequest()  
               {  
                   name = "Azure fun from plugin",  
                   telephone1 = "9150871106",  
                   accountnumber = "0987"  
               };  
         
               using var client = new HttpClient();  
               client.BaseAddress = new Uri("https://techxact.azurewebsites.net/");  
         
               var content = new StringContent(JsonConvert.SerializeObject(accountRequest), Encoding.UTF8, "application/json");  
         
               //// Passing API key as a query string  
               //HttpResponseMessage responseMessage = await client.PostAsync("api/Function2?code=ET4Kb0ksewZaB5RRMwrqrSrPQ3ym0SHBcVflUms1w34eEaLxcZ2QWg==", content);  
         
               // Passing API key in a HTTP Header, I would suggest this.  
               client.DefaultRequestHeaders.Add("x-functions-key", "ET4Kb0ksewZaB5RRMwrqrSrPQ3ym0SHBcVflUms1w34eEaLxcZ2QWg==");  
               HttpResponseMessage responseMessage = await client.PostAsync("api/Function2", content);  
         
               responseMessage.EnsureSuccessStatusCode();  
               Console.WriteLine(await responseMessage.Content.ReadAsStringAsync()); // This returns a GUID  
           }  
       }  
         
       public class AccountRequest  
       {  
           public string name { get; set; }  
         
           public string telephone1 { get; set; }  
         
           public string accountnumber { get; set; }  
       }  
    

0 additional answers

Sort by: Most helpful

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.