예제 #1
0
 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); }
 }
예제 #2
0
        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);
        }