1

我正在做一个持续的 API 项目。当前的问题是能够从 AtTask 服务器精确地以 AtTask 服务器上存在的文件夹结构下载我的数据。我的文件夹创建工作得很好;文档、文档文件夹和文档版本之间的数据类型似乎很清楚。我对扩展不在文档对象中的事实有点失望(我必须为此参考文档 VERSION)......但我可以从设计的角度看到其中的一些原因。

我现在遇到的问题是我需要获取文件内容。我最初通过 API 文档,我能够以与文档建议上传文件相同的方式获取文件内容——通过句柄。不幸的是,除了编写一个新文件之外,文档和文档似乎都不支持我访问句柄。

因此,剩下的选项就是“下载 URL”。如果我使用浏览器从 API 调用构建 UI 字符串,我会得到一个 URL https://attaskURL/document/download?ID=xxxx(并且还可以获得 versionID 等)。如果我将 url 粘贴到我登录到 AtTask 用户界面的浏览器中,它工作正常,我可以下载文件。相反,如果我使用我的 C# 代码来执行此操作,我会以流的形式返回登录页面,而不是我的实际文件,因为我没有经过身份验证。我尝试创建网络凭据并将其附加到带有用户名和密码的请求中,但无济于事。

我想有几种方法可以解决这个问题——最简单的方法是找到一种通过代码“登录”到下载站点的方法(这似乎不是 C# 中常见的网络凭据对象)或者找到一种方法通过 API 访问文件内容。

欣赏你的想法!

4

2 回答 2

4

如果您在 URL 中放置会话 ID,您似乎可以使用下载 URL。获取会话 id 的详细信息在这里(基本上只是调用 login 并以 JSON 形式返回会话 id):

http://developers.attask.com/api-docs/#Authentication

然后将其填入文档下载 URL 的末尾:

https://yourcompany.attask-ondemand.com/document/download?ID=xxxx&sessionID=abc1234

我已经对此进行了快速测试,并且可以访问文档。

于 2014-02-27T00:44:14.027 回答
1

如果您不使用 SAML 身份验证,则可以使用 downloadURL 和 sessionID。

我已经尝试过两种方式,使用 SAML 会将您重定向到登录页面。

于 2017-04-26T11:50:04.560 回答