Webclient 没有从 URL c# 下载所有内容
Webclient isn't dowloading everything from URL c#
我正在尝试从 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;
}
}
如果您查看响应,您会看到值为 100 的“pageSize”参数。
显然 100 是 steam 的最大页面大小 api returns.
{
"success":true,
"start":0,
"pagesize":100,
"total_count":15227,
......
}
因此,如果您想获取所有项目,您需要执行一个循环。您可以使用 START 和 TOTAL_COUNT 参数来计算偏移等
下面的 URL 会跳过前 100 项,return 会跳过后 100 项。
https://steamcommunity.com/market/search/render/?search_descriptions=0&sort_column=default&sort_dir=desc&appid=730&norender=1&count=100&start=100
我正在尝试从 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;
}
}
如果您查看响应,您会看到值为 100 的“pageSize”参数。
显然 100 是 steam 的最大页面大小 api returns.
{
"success":true,
"start":0,
"pagesize":100,
"total_count":15227,
......
}
因此,如果您想获取所有项目,您需要执行一个循环。您可以使用 START 和 TOTAL_COUNT 参数来计算偏移等
下面的 URL 会跳过前 100 项,return 会跳过后 100 项。
https://steamcommunity.com/market/search/render/?search_descriptions=0&sort_column=default&sort_dir=desc&appid=730&norender=1&count=100&start=100