gpt4 book ai didi

angular - 如何在 Angular 服务中通过API获取PDF

转载 作者:行者123 更新时间:2023-12-03 16:56:16 25 4
gpt4 key购买 nike

我在服务器上设置了基于Java的API。 URL = "ex.com"
它具有一个返回PDF文件的端点。 URL = "ex.com/pdf"
它期望带有参数的POST请求,该参数指定了要请求的PDF。 params = { location: "report.pdf"}
我希望能够使用可观察到的Angular Http.post来获取PDF,但是它一直抛出HttpErrorResponse Http failure during parsing for http://ex.com/pdf ... Unexpected token % in JSON at position 0 at JSON.parse。但它是PDF,我不希望将其解析为JSON。

这是我的代码:

params = {location: "report.pdf"};
return this.http.post<Response>("http://ex.com/pdf", params)
.subscribe(
data => {
var file = new Blob([data], {type: 'application/pdf'});
var fileURL = URL.createObjectURL(file);
window.open(fileURL);
}
);

端点与PostMan一起使用。我可以使用“发送并下载”选项来成功获取PDF文件。所以我只需要弄清楚如何在Angular中使用它。感谢帮助。

最佳答案

试试这样的东西...

首先,您将需要文件保护程序节点程序包,因此请运行npm install --save file-saver

然后,尝试使用类似的方法,我复制并粘贴用于类似方法的代码

public downloadPDF(): any {
var mediaType = 'application/pdf';
this.http.post(this.myUrl, {location: "report.pdf"}, { responseType: 'blob' }).subscribe(
(response) => {
var blob = new Blob([response], { type: mediaType });
saveAs(blob, 'report.pdf');
},
e => { throwError(e); }
);
}

这对我有用,但仅用于保存文件。

让我知道它是否有效!

更新-ANGULAR7和FILESAVER V. ^ 2.0.1 +

我刚刚从Angular v.6和Filesaver v。<2.0.1迁移了我的应用程序(不知道它是什么版本,但它是2.0.1的先前版本)。
在此新版本中,您将必须从以下位置更改导入:
import { saveAs } from 'file-saver/FileSaver';

import { saveAs } from 'file-saver';
其他所有内容都与以前的版本一样!

关于angular - 如何在 Angular 服务中通过API获取PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50332447/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com