c# - Box Api GET 具有偏移和限制的文件夹项目不起作用
问题描述
我正在尝试检索 Box.com api 中文件夹中的项目列表(并使用偏移/限制进行分页)。
根据文档,我应该这样做:
curl https://api.box.com/2.0/folders/FOLDER_ID/items?limit=2&offset=0 \
-H "Authorization: Bearer ACCESS_TOKEN"
这看起来很简单。而且我相信我正在遵循这些说明,如下面的代码所示:
var boxUrl = "https://api.box.com/2.0/folders/" + folderId + "/items";
var requestParams = new NameValueCollection();
requestParams.Add("limit", "10");
requestParams.Add("offset", "50");
var array = (from key in requestParams.AllKeys
from value in requestParams.GetValues(key)
select string.Format("{0}={1}", key, value))
.ToArray();
var queryString = string.Join("&", array);
var url = boxUrl + "?" + queryString;
WebRequest request = WebRequest.Create(boxEmailUrl);
request.Method = "GET";
request.ContentType = "application/x-www-form-urlencoded";
request.Headers.Add("Authorization", "Bearer " + AccessToken);
WebResponse response = request.GetResponse();
Stream dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd();
当我调试此代码时,值为url
:
https://api.box.com/2.0/folders/347534773457/items?limit=10&offset=50
这似乎完全正确。但是我得到的回复给了我前 100 条记录,而不是 50-60 条记录。事实上,我从这个 api 调用返回的元数据显示"offset":0, "limit":100
,好像我根本没有提供任何limit
或offset
参数。这是其中的一小部分:
{"total_count":101,"entries":[
{"type":"folder","id":"493...
...917","sequence_id":"0","etag":"0","name":"xxxxxxx"}],
"offset":0,"limit":100,"order": [{"by":"type", "direction":"ASC"},{"by":"name","direction":"ASC"}]}
这可能是 Box.com 的 api 中的错误吗?或者我在我的 api 调用中做错了什么?
解决方案
推荐阅读
- azure - 如何自定义默认工作项状态的颜色
- google-chrome-extension - 使用 Chrome 扩展程序进行 Google 转化跟踪
- python-3.x - 为命令创建冷却时间
- excel - VBScript 在保存和关闭 Excel 工作簿之前结束
- bash - git bash 立即关闭
- excel - VBA 定义 SAP 在哪个屏幕中(防止错误)
- cmake - MinGW 中 .dll 文件的问题
- java - Java 中从 if-elseif-else 获取值的功能变体
- plugins - Notepad++ 插件服务器宕机,还有其他选择吗?
- php - 防止 html2pdf 破坏特定字符串