コード例 #1
0
        public static async Task <StockXApiResult <object> > DeleteListin(this StockXAccount stockAuth, string ChainID)
        {
            using (var httpClient = stockAuth.GetHttpClient())
            {
                using (var request = new HttpRequestMessage(new HttpMethod("DELETE"), "https://stockx.com/api/portfolio/" + ChainID))
                {
                    request.Headers.TryAddWithoutValidation("authority", "stockx.com");
                    request.Headers.TryAddWithoutValidation("origin", "https://stockx.com");
                    request.Headers.TryAddWithoutValidation("authorization", "Bearer " + stockAuth.Token);
                    request.Headers.TryAddWithoutValidation("content-type", "application/json");
                    request.Headers.TryAddWithoutValidation("appos", "web");
                    request.Headers.TryAddWithoutValidation("x-requested-with", "XMLHttpRequest");
                    request.Headers.TryAddWithoutValidation("user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36");
                    request.Headers.TryAddWithoutValidation("dnt", "1");
                    request.Headers.TryAddWithoutValidation("appversion", "0.1");
                    request.Headers.TryAddWithoutValidation("accept", "*/*");
                    request.Headers.TryAddWithoutValidation("sec-fetch-site", "same-origin");
                    request.Headers.TryAddWithoutValidation("sec-fetch-mode", "cors");
                    request.Headers.TryAddWithoutValidation("referer", "https://stockx.com/sell/" + ChainID);
                    request.Headers.TryAddWithoutValidation("accept-encoding", "gzip, deflate, br");
                    request.Headers.TryAddWithoutValidation("accept-language", "en-US,en;q=0.9");
                    var json = new
                    {
                        chain_id = "",
                        notes    = "User Canceled Bid"
                    };
                    request.Content = new StringContent(JsonConvert.SerializeObject(json));
                    request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/x-www-form-urlencoded");

                    var response = await httpClient.SendAsync(request);

                    var txt = await response.Content.ReadAsStringAsync();

                    if ((int)response.StatusCode > 399)
                    {
                        return(new StockXApiResult <object>()
                        {
                            Code = response.StatusCode,
                            ResultText = txt,
                        });
                    }
                    var settings = new JsonSerializerSettings
                    {
                        NullValueHandling     = NullValueHandling.Ignore,
                        MissingMemberHandling = MissingMemberHandling.Ignore
                    };
                    return(new StockXApiResult <object>()
                    {
                        Code = response.StatusCode,
                        ResultText = txt,
                        RO = JsonConvert.DeserializeObject <GetPagedPortfolioItemsResponse>(txt, settings)
                    });
                }
            }
        }
コード例 #2
0
        public static async Task <StockXApiResult <GetPagedPortfolioItemsResponse> > GetCurrentListings(this StockXAccount stockAuth, string CusomterID, int Page, string IfNoneMatch = "")
        {
            using (var httpClient = stockAuth.GetHttpClient())
            {
                using (var request = new HttpRequestMessage(new HttpMethod("GET"), $"https://stockx.com/api/customers/{CusomterID}/selling/current?sort=created_at&order=DESC&limit=20&page={Page}&currency={stockAuth.Currency}&country={stockAuth.Country}"))
                {
                    request.Headers.TryAddWithoutValidation("authority", "stockx.com");
                    request.Headers.TryAddWithoutValidation("dnt", "1");
                    request.Headers.TryAddWithoutValidation("authorization", "Bearer " + stockAuth.Token);
                    request.Headers.TryAddWithoutValidation("appos", "web");
                    request.Headers.TryAddWithoutValidation("x-requested-with", "XMLHttpRequest");
                    request.Headers.TryAddWithoutValidation("x-anonymous-id", "undefined");
                    request.Headers.TryAddWithoutValidation("user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36");
                    request.Headers.TryAddWithoutValidation("appversion", "0.1");
                    request.Headers.TryAddWithoutValidation("accept", "*/*");
                    request.Headers.TryAddWithoutValidation("sec-fetch-site", "same-origin");
                    request.Headers.TryAddWithoutValidation("sec-fetch-mode", "cors");
                    request.Headers.TryAddWithoutValidation("referer", "https://stockx.com/selling");
                    request.Headers.TryAddWithoutValidation("accept-encoding", "gzip, deflate, br");
                    request.Headers.TryAddWithoutValidation("accept-language", "en-US,en;q=0.9");

                    var response = await httpClient.SendAsync(request);

                    var txt = await response.Content.ReadAsStringAsync();

                    if ((int)response.StatusCode > 399)
                    {
                        return(new StockXApiResult <GetPagedPortfolioItemsResponse>()
                        {
                            Code = response.StatusCode,
                            ResultText = txt,
                        });
                    }

                    var settings = new JsonSerializerSettings
                    {
                        NullValueHandling     = NullValueHandling.Ignore,
                        MissingMemberHandling = MissingMemberHandling.Ignore
                    };

                    return(new StockXApiResult <GetPagedPortfolioItemsResponse>()
                    {
                        Code = response.StatusCode,
                        ResultText = txt,
                        RO = JsonConvert.DeserializeObject <GetPagedPortfolioItemsResponse>(txt, settings)
                    });
                }
            }
        }
コード例 #3
0
        public static async Task <StockXApiResult <ProductActivityResponse> > GetASks(this StockXAccount stockAuth, Inventory Item, int Page = 1)
        {
            using (var httpClient = stockAuth.GetHttpClient())
            {
                using (var request = new HttpRequestMessage(new HttpMethod("GET"), $"https://stockx.com/api/products/{Item.Sku}/activity?state=400&currency={stockAuth.Currency}&limit=100&page={Page}&sort=amount&order=ASC&country={stockAuth.Country}"))
                {
                    request.Headers.TryAddWithoutValidation("authority", "stockx.com");
                    request.Headers.TryAddWithoutValidation("dnt", "1");

                    request.Headers.TryAddWithoutValidation("appos", "web");
                    request.Headers.TryAddWithoutValidation("x-requested-with", "XMLHttpRequest");
                    request.Headers.TryAddWithoutValidation("x-anonymous-id", "undefined");
                    request.Headers.TryAddWithoutValidation("user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36");
                    request.Headers.TryAddWithoutValidation("appversion", "0.1");
                    request.Headers.TryAddWithoutValidation("accept", "*/*");
                    request.Headers.TryAddWithoutValidation("sec-fetch-site", "same-origin");
                    request.Headers.TryAddWithoutValidation("sec-fetch-mode", "cors");
                    request.Headers.TryAddWithoutValidation("referer", Item.StockXUrl);
                    request.Headers.TryAddWithoutValidation("accept-encoding", "gzip, deflate, br");
                    request.Headers.TryAddWithoutValidation("accept-language", "en-US,en;q=0.9");

                    var response = await httpClient.SendAsync(request);

                    var txt = await response.Content.ReadAsStringAsync();

                    if ((int)response.StatusCode > 399)
                    {
                        return(new StockXApiResult <ProductActivityResponse>()
                        {
                            Code = response.StatusCode,
                            ResultText = txt,
                        });
                    }
                    var settings = new JsonSerializerSettings
                    {
                        NullValueHandling     = NullValueHandling.Ignore,
                        MissingMemberHandling = MissingMemberHandling.Ignore
                    };
                    return(new StockXApiResult <ProductActivityResponse>()
                    {
                        Code = response.StatusCode,
                        ResultText = txt,
                        RO = JsonConvert.DeserializeObject <ProductActivityResponse>(txt, settings)
                    });
                }
            }
        }
コード例 #4
0
        public static async Task <GetProductSizesReponse> GetProductFromUrl(this StockXAccount stockAuth, string Url)
        {
            using (var httpClient = stockAuth.GetHttpClient())
            {
                string requestUri = $"{Url.Replace("https://stockx.com/", $"https://stockx.com/api/products/")}?includes=market,360&currency={stockAuth.Currency}&country={stockAuth.Country}";
                using (var request = new HttpRequestMessage(new HttpMethod("GET"), requestUri))
                {
                    request.Headers.TryAddWithoutValidation("authority", "stockx.com");
                    request.Headers.TryAddWithoutValidation("dnt", "1");

                    request.Headers.TryAddWithoutValidation("appos", "web");
                    request.Headers.TryAddWithoutValidation("x-requested-with", "XMLHttpRequest");
                    request.Headers.TryAddWithoutValidation("x-anonymous-id", "undefined");
                    request.Headers.TryAddWithoutValidation("user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36");
                    request.Headers.TryAddWithoutValidation("appversion", "0.1");
                    request.Headers.TryAddWithoutValidation("accept", "*/*");
                    request.Headers.TryAddWithoutValidation("sec-fetch-site", "same-origin");
                    request.Headers.TryAddWithoutValidation("sec-fetch-mode", "cors");
                    request.Headers.TryAddWithoutValidation("referer", Regex.Replace(Url.Replace("https://stockx.com/", "https://stockx.com/sell"), @"\??.*", ""));
                    request.Headers.TryAddWithoutValidation("accept-encoding", "gzip, deflate, br");
                    request.Headers.TryAddWithoutValidation("accept-language", "en-US,en;q=0.9");

                    var response = await httpClient.SendAsync(request);

                    var txt = await response.Content.ReadAsStringAsync();

                    var settings = new JsonSerializerSettings
                    {
                        NullValueHandling     = NullValueHandling.Ignore,
                        MissingMemberHandling = MissingMemberHandling.Ignore
                    };

                    return(JsonConvert.DeserializeObject <GetProductSizesReponse>(txt, settings));
                }
            }
        }
コード例 #5
0
        public static async Task <StockXApiResult <ListItemResponse> > MakeListing(this StockXAccount stockAuth, string RefUrl, string skuUuid, int Amount, string ExpiresDate)
        {
            using (var httpClient = stockAuth.GetHttpClient())
            {
                using (var request = new HttpRequestMessage(new HttpMethod("POST"), "https://stockx.com/api/portfolio?a=ask"))
                {
                    request.Headers.TryAddWithoutValidation("authority", "stockx.com");
                    request.Headers.TryAddWithoutValidation("origin", "https://stockx.com");
                    request.Headers.TryAddWithoutValidation("authorization", "Bearer " + stockAuth.Token);
                    request.Headers.TryAddWithoutValidation("content-type", "application/json");
                    request.Headers.TryAddWithoutValidation("appos", "web");
                    request.Headers.TryAddWithoutValidation("x-requested-with", "XMLHttpRequest");
                    request.Headers.TryAddWithoutValidation("user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36");
                    request.Headers.TryAddWithoutValidation("dnt", "1");
                    request.Headers.TryAddWithoutValidation("appversion", "0.1");
                    request.Headers.TryAddWithoutValidation("accept", "*/*");
                    request.Headers.TryAddWithoutValidation("sec-fetch-site", "same-origin");
                    request.Headers.TryAddWithoutValidation("sec-fetch-mode", "cors");
                    request.Headers.TryAddWithoutValidation("referer", RefUrl.Replace("//stockx.com/", "//stockx.com/sell/"));

                    request.Headers.TryAddWithoutValidation("accept-encoding", "gzip, deflate, br");
                    request.Headers.TryAddWithoutValidation("accept-language", "en-US,en;q=0.9");
                    var NewListing = new ListItemRequest()
                    {
                        Action        = "ask",
                        PortfolioItem = new ListItemRequestPortfolioItem()
                        {
                            LocalAmount   = Amount,
                            ExpiresAt     = ExpiresDate,
                            SkuUuid       = skuUuid,
                            LocalCurrency = stockAuth.Currency,
                            Meta          = new ListItemRequestMeta
                            {
                                DiscountCode = "",
                            }
                        }
                    };
                    var PostJson = JsonConvert.SerializeObject(NewListing);
                    request.Content = new StringContent(PostJson);
                    request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");

                    var response = await httpClient.SendAsync(request);

                    var txt = await response.Content.ReadAsStringAsync();

                    if ((int)response.StatusCode > 399)
                    {
                        return(new StockXApiResult <ListItemResponse>()
                        {
                            Code = response.StatusCode,
                            ResultText = txt
                        });
                    }

                    var settings = new JsonSerializerSettings
                    {
                        NullValueHandling     = NullValueHandling.Ignore,
                        MissingMemberHandling = MissingMemberHandling.Ignore
                    };
                    return(new StockXApiResult <ListItemResponse>()
                    {
                        RO = JsonConvert.DeserializeObject <ListItemResponse>(txt, settings),
                        Code = response.StatusCode,
                        ResultText = txt
                    });
                }
            }
        }