当前位置: 首页 > 知识库问答 >
问题:

从其他API获取PDF

巫晋鹏
2023-03-14

我如何通过我自己的API从另一个API获取PDF,然后到前面供用户下载。

我现在得到的只是一张空白页。

后面是Scala的,当我打印文件时,我得到一个字符串。

onDownload(invoice) {
var mediaType = 'application/pdf';
this.invoices.downloadInvoice(invoice.id).subscribe((file: Blob) => {
  const fileName = invoice.number;
  var blob = new Blob([file], { type: mediaType });
  const fileUrl = URL.createObjectURL(blob);
  FileSaver.default(fileUrl, fileName.toString());
}), err => {
  console.error(err);
 }
}

共有1个答案

郭恩
2023-03-14

使用了哪一个Scala服务器?路径/API返回什么?

我是不是应该试着把他存放在服务器上,然后把它送到前面去

这是使它工作的最可靠的方法。例如:如果使用akka-server,将传入文件保存在某个临时位置(例如/tmp),并使用akka-routegetfromfile将文件服务器到前端。每个服务器都将有一个等价物。

如果我们想要绕过文件保存,我们需要欺骗/攻击客户机,使其认为传入的string实际上是一个文件。我不确定您的服务器是否允许这样做,但您可以通过传递相同的HTTP头来尝试。为此,创建一个简单的API来发送一些PDF,检查客户端接收到的所有头,然后确保您的hacky方式发送相同的HTTP头。

 类似资料:
  • 我正在扩展一个PHP应用程序,它允许管理员创建事件并为这些事件分配特定用户。但是,在用户被列为可分配之前,我会检查用户的日历,看看他们是否可用。 我已经使用EWS为Exchange构建了一次,并使用FindItem方法在给定的时间段内检索用户电子邮件地址的事件,但我在Google日历API中很难找到等效的事件。 Events和FreeBusy Call似乎都需要特定用户的calendarId,这对

  • 问题内容: 我有一个汇总函数,按(colA)进行分组。它从一组列(列B)中选择最大值,但我也想从同一行中的列(列C)中返回另一个值。但是,如果将3行分组,则从C列中选择第一个值,而不是最大值(MAX(colB))的列。 问题答案: 您将要使用一个子查询,该子查询将按每个子查询获取,然后将该值重新连接到表中,以返回与该子查询的值匹配的其余列: 参见带有演示的SQL Fiddle

  • 我有2个插件A和b。我在Require-Bundle部分有插件B。但是当我试图从A类中获取B的资源时 我得到null。如果我把B的资源(文件夹)放在A的根目录上,一切都像一个魅力。我错过了什么吗? 注:我读了拉尔斯·沃格尔的文章 ^这个解决方案在我从eclipse运行插件时有效,但当我将插件打包到jar并尝试从本地更新站点安装时 附言:我也读过几个关于堆栈溢出的相关问题,但无法找到答案: Java

  • 我有一个名为Trade的实体,它可以映射到包含属性的表。这个实体也有一个字段,存储来自另一个表的值。我的贸易表包含第二个表的主键。我知道如何获得整个第二个表作为实体在我的贸易实体,但我只想要1列。 如你所见,我尝试了,但是连接是在贸易实体的主密钥上执行的。我如何使用注释从贸易表中选择外键,将其连接到第二/第三表,并直接只从col2/col3中获取值?任何建议都很感激 餐桌贸易: 表2: 表3: 现

  • 问题内容: 我将解释我在示例中需要做的事情。首先,我们有一个像这样的简单表,名为 table : 现在查询: 将使我们得到与这一结果相似的结果: 但是是否有可能收集 name的 所有值来得到这样的结果? 问题答案: 使用MySQL可以使用GROUP_CONCAT(expr) 此函数返回一个字符串结果,其中包含来自组的串联的非NULL值。如果没有非NULL值,则返回NULL。完整语法如下: 就像是

  • 我试图使用以下代码调用非活动类中的新活动: 我有一个UsageActivity,它有以下代码: 在onCreate()下面 我创建了这样一个方法: 它抛出一个异常,说: 08-23 12:51:39.439:E/AndroidRuntime(15059):致命异常:main 08-23 12:51:39.439:E/AndroidRuntime(15059):java。lang.NullPoint