这是我的情况: 我的第三部分使用了一个名为microstrategy的软件,它能够生成文档并允许将它们导出为PDF或Excel文件。他们只向我提供此产品的web api,而且我没有任何Web服务可供使用。
网址如下:
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代码获取文件(我必须保存在服务器端),但是我们使用的链接的响应是一个HTML页面,其中包含一些代码Javascript,它可以执行多个重定向,所以我可以没有正确解释响应,我应该使用浏览器来获取PDF。
所以我想把页面放到iframe中一段时间后(通常服务器需要20秒)通过javascript代码获取PDF对象并发送到我的服务器。但显然第三部分有另一个域,CORS策略阻止了一切。更糟糕的是,我无法使用最终的URL来获取文件,因为微策略用响应我的管理控制台的内部页面。
所以,这是我的问题:
是否有办法(不在微策略服务器端)从微策略直接获取PDF?
还是存在一种从客户端绕过原点控制问题的方法?我已经评估过为解决方案实现代理,但它太贵了。
感谢所有人!
答案 0 :(得分:1)
您需要两件事才能使用URL从MicroStrategy下载PDF:
在文档属性中将默认可视化设置为PDF。这非常简单,我认为您的任何MicroStrategy精明的同事都可以帮助您。
禁用等待页面,这更复杂。当MicroStrategy生成文档时,通常需要一些时间,同时服务器正在运行它会向您显示一个等待页面。如果请求来自人(人类可以继续StackOverflow),如果来自API的呼叫不是那么多,那就很有用。
禁用等待页面的说明如下:TN34124: How to Disable the Wait Page in MicroStrategy Web using the MicroStrategy Web SDK 9.x。
但我从您的问题中读到,您无法控制第三方MicroStrategy应用程序。在那种情况下,你几乎无能为力。您可以尝试让他们实现自定义以删除等待页面或允许您使用taskproc API,但这是另一天的故事。
答案 1 :(得分:0)
一些选项:
要求第三方安排PDF生成并通过邮件发送给您。或者将其放在您之间共享的共享文件夹中。
从文件共享菜单选项中请求不同的网址图样。这将提供一个包含&#39; subscriptionid&#39;在里面。