直接从microstrategy获取导出的PDF文档

Obtain from microstrategy an exported PDF document directly

这是我的情况: 我有第三部分使用名为 microstrategy 的软件,该软件能够生成文档并允许将它们导出为 PDF 或 Excel 文件。他们只向我提供该产品的网络 api,我没有任何网络服务可以使用。

url 就像:

http://<third_part_domain>/microstrategy/asp/Main.aspx?Server=<third_part_domain>&Project=<project_name>&evt=3069&src=Main.aspx.3069&executionMode=3&promptAnswerMode=1&documentID=<doc_id>&uid=<username>&pwd=<password>&<other_parameters_for_request>

我已经尝试通过 java 代码获取文件(我必须保存在服务器端),但是我们使用的 link 的响应是一个 HTML 页面某些代码 Javascript 执行多个重定向,因此我无法正确解释响应,我应该使用浏览器来获取 PDF。

所以我想将页面放入 iframe 并在一段时间后(通常服务器需要 20 秒)通过 java 脚本代码获取 PDF 对象并发送到我的服务器。但显然第三方有另一个域,CORS 策略阻止了一切。更糟糕的是,我无法使用最终的 url 来获取文件,因为 microstrategy 用管理控制台的内部页面响应我。

所以,这是我的问题:

有没有办法(不在 microstrategy 服务器端)直接从 microstrategy 获取 PDF?

或者客户端有办法绕过源站控制的问题?我已经评估过为解决方案实施代理,但它太昂贵了。

感谢大家!

您需要两件事才能使用 URL:

从 MicroStrategy 下载 PDF
  1. 在文档中 属性 将默认可视化设置为 PDF。这是非常微不足道的,我认为任何精通 MicroStrategy 的同事都可以帮助您解决这个问题。

  2. 禁用等待页面,这个比较复杂。当 MicroStrategy 生成文档时,通常需要一些时间,同时服务器正在工作,它会显示一个等待页面。如果请求来自人类(人类可以继续 Whosebug),则很有用,如果呼叫来自 API,则没那么有用。

禁用等待页面的说明在这里:TN34124: How to Disable the Wait Page in MicroStrategy Web using the MicroStrategy Web SDK 9.x

但是我从你的问题中了解到你无法控制第三方 MicroStrategy 应用程序。在那种情况下,你无能为力。您可以尝试让他们实施自定义以删除等待页面或允许您使用 taskproc API,但这是另一天的故事。

部分选项:

  1. 请第三方在他们这边安排 PDF 生成并通过邮件发送给您。或者将其放在你们之间共享的共享文件夹中。

  2. 从文件共享菜单选项中请求不同的 URL 图阿雷格人。这将给出一个 URL 和 'subscriptionid' 。