【问题标题】:Webclient isn't dowloading everything from URL c#Webclient 不会从 URL c# 下载所有内容
【发布时间】:2020-11-29 11:07:30
【问题描述】:

我正在尝试从steam community market 获取每个项目名称(我在市场上销售你购买和销售虚拟物品的地方,你可以在游戏中使用它们)。 Steam 对此有一个API link,上面写着"total_count":15227,代表物品的数量。 但是当我尝试下载它时,我只得到了 100 个项目。为什么呢? 我是这样下载的:

public static Task LoadAllItemsAsync()
{
     using (WebClient w = new WebClient())
     {
          var responseData = w.DownloadString("https://steamcommunity.com/market/search/render/?search_descriptions=0&sort_column=default&sort_dir=desc&appid=730&norender=1&count=500");
           //StatTrak™ FAMAS | Sergeant (Battle-Scarred)
           dynamic parsedJson = JsonConvert.DeserializeObject(responseData);
           string jsonData = JsonConvert.SerializeObject(parsedJson, Formatting.Indented);
                System.IO.File.WriteAllText(System.IO.Path.GetFullPath(@"..\..\SteamData\SteamItems.json"), jsonData);

           return Task.CompletedTask;
      }
 }

【问题讨论】:

    标签: c# json webclient steam-web-api


    【解决方案1】:

    如果您查看响应,您可以看到值为 100 的“pageSize”参数。

    显然 100 是 steam api 返回的最大页面大小。

    {
       "success":true,
       "start":0,
       "pagesize":100,
       "total_count":15227,
       ......
    }
    

    因此,如果您想获取所有项目,则需要执行循环。您可以使用 START 和 TOTAL_COUNT 参数来计算偏移量等。

    下面的 URL 将跳过前 100 个项目并返回接下来的 100 个。

    https://steamcommunity.com/market/search/render/?search_descriptions=0&sort_column=default&sort_dir=desc&appid=730&norender=1&count=100&start=100
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多