In this post I will explain multiple ways to use parameters for HTTP GET Request using System.Net.HttpClient. You don't need to build parameters string 
by concatenating different values from a name-value collection.
- 
  First method is to use HttpUtility.ParseQueryString()function.var query = HttpUtility.ParseQueryString(string.Empty); query["p1"] = "value1"; query["p2"] = "value2"; string queryString = query.ToString(); queryStringvariable contains the parameters in query string format.
- 
  Another way could be to use UriBuilder class. var builder = new UriBuilder("http://example.com"); builder.Port = -1; var query = HttpUtility.ParseQueryString(builder.Query); query["p1"] = "value1"; query["p2"] = "value2"; builder.Query = query.ToString(); string url = builder.ToString();The urlvariable will contain both the page URL and query string parameters.
- 
  If you do not want to include a reference to System.Webin your project, you can useFormDataCollectionclass by adding reference toSystem.Net.Http.Formatting.var parameters = new Dictionary () { { "p1", "value1" }, { "p2", "value2 + SomeOtherValue?" }, }; var queryString = new FormDataCollection(parameters).ReadAsNameValueCollection().ToString(); queryStringvariable now contains the parameters in query string format.
- 
  If you are using ASP.Net Core, you can use the QueryHelpersclass by first adding reference toMicrosoft.AspNetCore.WebUtilities.var query = new Dictionary { ["p1"] = "value1", ["p2"] = "value2", }; var response = await client.GetAsync(QueryHelpers.AddQueryString("/api/", query)); 
 
