public PriceGuideItem GetPriceGuide(string number, TypeDescription typedesc = TypeDescription.SET, bool New_Used = true) { try { string url = $"https://api.bricklink.com/api/store/v1/items/{typedesc.ToString()}/{number}/price"; WebParameterCollection param = new WebParameterCollection(); param.Add("currency_code", "EUR"); if (New_Used) { param.Add("new_or_used", "N"); } else { param.Add("new_or_used", "U"); } for (int i = 0; i < retry; i++) { var strret = ExecuteRequest(url, param); var retobjdeser = Newtonsoft.Json.JsonConvert.DeserializeObject <PriceMain>(strret); Debug.WriteLine($"{retobjdeser.meta.message}, {retobjdeser.meta.description}, {retobjdeser.meta.code}"); if (retobjdeser.meta.message == "OK") { return(retobjdeser.data); } } return(null); } catch (Exception) { return(null); } }
public static string GetSignatureBaseString(string url, string TimeStamp, string Nonce, WebParameterCollection param) { //1.Convert the HTTP Method to uppercase and set the output string equal to this value. string Signature_Base_String = "GET"; Signature_Base_String = Signature_Base_String.ToUpper(); //2.Append the ‘&’ character to the output string. Signature_Base_String = Signature_Base_String + "&"; //3.Percent encode the URL and append it to the output string. string PercentEncodedURL = Uri.EscapeDataString(url); Signature_Base_String = Signature_Base_String + PercentEncodedURL; //4.Append the ‘&’ character to the output string. Signature_Base_String = Signature_Base_String + "&"; //5.append parameter string to the output string. // a bit crap but should work for 1 param. Let see :) var authParameters = new WebParameterCollection { new WebParameter("oauth_consumer_key", ConfigurationManager.AppSettings["oauth_consumer_key"]), new WebParameter("oauth_nonce", Nonce), new WebParameter("oauth_signature_method", "HMAC-SHA1"), new WebParameter("oauth_timestamp", TimeStamp), new WebParameter("oauth_version", "1.0"), new WebParameter("oauth_token", ConfigurationManager.AppSettings["oauth_token"]) }; if (param != null) { foreach (var authParameter in param) { authParameters.Add(authParameter); } } Signature_Base_String += Uri.EscapeDataString(NormalizeRequestParameters(authParameters)); //if (param.Length > 0) // if (string.Compare(param.Substring(0, 1), "o") < 0) // { Signature_Base_String = Signature_Base_String + Uri.EscapeDataString(param + "&"); } //Signature_Base_String = Signature_Base_String + Uri.EscapeDataString("oauth_consumer_key=" + ConfigurationManager.AppSettings["oauth_consumer_key"]); //Signature_Base_String = Signature_Base_String + Uri.EscapeDataString("&oauth_nonce=" + Nonce); //Signature_Base_String = Signature_Base_String + Uri.EscapeDataString("&oauth_signature_method=" + "HMAC-SHA1"); //Signature_Base_String = Signature_Base_String + Uri.EscapeDataString("&oauth_timestamp=" + TimeStamp); //Signature_Base_String = Signature_Base_String + Uri.EscapeDataString("&oauth_token=" + ConfigurationManager.AppSettings["oauth_token"]); //Signature_Base_String = Signature_Base_String + Uri.EscapeDataString("&oauth_version=" + "1.0"); //if (param.Length > 0) // if (string.Compare(param.Substring(0, 1), "o") >= 0) // { Signature_Base_String = Signature_Base_String + Uri.EscapeDataString("&" + param); } return(Signature_Base_String); }