In this azure tutorial, we will discuss how to fix the error, ‘HttpRequestMessage’ Does Not Contain A Definition For ‘GetQueryNameValuePairs’. This error I got after executing the Azure Function Code to interact with the Sharepoint From Azure Function using the Visual Studio 2019.
Table of Contents
‘HttpRequestMessage’ Does Not Contain A Definition For ‘GetQueryNameValuePairs’
Recently, I was trying to write one Azure Function to connect to Share Point and to delete a SharePoint list. I came across with few lines of code that are not supported with the latest version of Azure Function.
Below was my function code
using System;
using System.IO;
using System.Threading.Tasks;
//using Microsoft.AspNetCore.Mvc;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
//using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using System.Collections.Generic;
using Microsoft.SharePoint.Client;
using System.Net;
using System.Net.Http;
//using Microsoft.AspNetCore.Mvc.WebApiCompatShim;
using System.Linq;
namespace deletesplistvs
{
public static class Function1
{
[FunctionName("NewFunction")]
public static async Task<HttpResponseMessage> Run(
[HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequestMessage request,
ILogger log)
{
string site = "https://tsinfo.sharepoint.com/sites/SPFx/";
string userName = "[email protected]";
string password = "[email protected]";
// parse query parameter
string listtitle = request.GetQueryNameValuePairs()
.FirstOrDefault(q => string.Compare(q.Key, "title", true) == 0)
.Value;
System.Security.SecureString secureString = new System.Security.SecureString();
foreach (char ch in password)
{
secureString.AppendChar(ch);
}
When I started executing the code, I go the below error
‘HttpRequestMessage’ Does Not Contain A Definition For ‘GetQueryNameValuePairs’
Below is the Complete error message
Error CS1061 ‘HttpRequestMessage’ does not contain a definition for ‘GetQueryNameValuePairs’ and no accessible extension method ‘GetQueryNameValuePairs’ accepting a first argument of type ‘HttpRequestMessage’ could be found (are you missing a using directive or an assembly reference?) deletesplistvs C:\Users\Bijay\source\repos\deletesplistvs\deletesplistvs\Function1.cs 32
You can able to see the error as below
‘HttpRequestMessage’ Does Not Contain A Definition For ‘GetQueryNameValuePairs’ [Solved]
To fix the error ‘HttpRequestMessage’ Does Not Contain A Definition For ‘GetQueryNameValuePairs’, I am sorry to say that you have to downgrade the Azure Function version in your .csproj file.
Open your Azure Function project file i.e Projectname.csproj and do the below changes
<PropertyGroup>
<TargetFramework>net461</TargetFramework>
<AzureFunctionsVersion>v1</AzureFunctionsVersion>
</PropertyGroup>
Below are the changes as highlighted
Now if you will run the Project you will not get the error
But, Personally I feel again going back to the older version of the Azure Function is not at all a good Idea and looks a bit uneasy You can try using the below way
You can use the HttpRequest req as the parameter and can use in the following way
string name = req.Query["name"];
public static class MyProductHTTPFunction
{
[FunctionName("MyProductHTTPFunction")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req,
ILogger log, ExecutionContext context)
{
log.LogInformation("MyProductHTTPFunction function processed a request.");
string name = req.Query["name"];
In this way you can fix the error ‘HttpRequestMessage’ Does Not Contain A Definition For ‘GetQueryNameValuePairs’.
You may also like following the below articles
- Error CS1061 ‘IConfigurationBuilder’ does not contain definition for ‘AddEnvironmentVariables’
- How To Create API With Azure Functions
- Error CS012 The call is ambiguous between the following methods or properties
- Get-AzVm : ‘this.Client.SubscriptionId’ cannot be null
Wrapping Up
Well, in this article, we discussed, How to fix the error ‘HttpRequestMessage’ Does Not Contain A Definition For ‘GetQueryNameValuePairs’. Hope it will help you to fix your issue !!!