Error:

Get the following error when trying to process a json object within Azure Function.

System.Private.CoreLib: Exception while executing function: xxxxxxxx. Microsoft.Azure.WebJobs.Host: Exception binding parameter 'myQueueItem'. System.Private.CoreLib: The input is not a valid Base-64 string as it contains a non-base 64 character, more than two padding characters, or an illegal character among the padding characters.

Fix:

        public static async Task<IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req,
            ILogger log)
        {
            // Get message from body of POST.
            string requestBody = await new StreamReader(req.Body).ReadToEndAsync();

            QueueClient queue = new QueueClient(Environment.GetEnvironmentVariable("MyConnnectionString"), "myqueue");

            queue.SendMessage(Base64Encode(requestBody));

            return new OkObjectResult("SUCCESS");
        }

        private static string Base64Encode(string plainText)
        {
            var plainTextBytes = System.Text.Encoding.UTF8.GetBytes(plainText);
            return System.Convert.ToBase64String(plainTextBytes);
        }
public static Azure.Response<Azure.Storage.Queues.Models.SendReceipt> SendMessage(this Azure.Storage.Queues.QueueClient queueClient, object value)
        {
            var plainText = JsonConvert.SerializeObject(value);
            var plainTextBytes = System.Text.Encoding.UTF8.GetBytes(plainText);
            return queueClient.SendMessage(Convert.ToBase64String(plainTextBytes));
        }

Sources:

https://github.com/Azure/azure-sdk-for-net/issues/10242

Last modified: April 5, 2021

Author

Comments

Write a Reply or Comment