using System.Collections.Generic;
public static void Main()
string action = "/Products/Search";
Dictionary<string, string> apiParams = new Dictionary<string, string>();
apiParams.Add("Country", "PL");
apiParams.Add("Language", "PL");
apiParams.Add("SearchPlain", "TS4148 RYG");
apiParams.Add("Token", "TOKEN");
string uri = $@"https://api.tme.eu/{action}.json";
string queryParams = string.Join("&", apiParams.Select(kvp => $"{Uri.EscapeDataString(kvp.Key)}={Uri.EscapeDataString(kvp.Value)}"));
string escapedUri = HttpUtility.UrlEncode(uri);
string escapedParams = HttpUtility.UrlEncode(queryParams);
string signatureBase = $"POST&{escapedUri}&{escapedParams}";
Console.WriteLine(signatureBase);