首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何接收二进制pdf的http响应并显示。angular 2- ionic2

要接收二进制PDF的HTTP响应并显示,可以使用Angular 2和Ionic 2来实现。下面是一个完整的解决方案:

  1. 在Angular 2中,可以使用HttpClient模块来发送HTTP请求并接收响应。首先,确保已经在项目中引入了HttpClient模块。
  2. 创建一个服务(例如,PdfService),用于处理与PDF相关的操作。在该服务中,可以定义一个方法来发送HTTP请求并接收二进制PDF响应。
代码语言:typescript
复制

import { Injectable } from '@angular/core';

import { HttpClient, HttpHeaders, HttpResponse } from '@angular/common/http';

import { Observable } from 'rxjs';

@Injectable()

export class PdfService {

代码语言:txt
复制
 constructor(private http: HttpClient) {}
代码语言:txt
复制
 getBinaryPdf(url: string): Observable<HttpResponse<Blob>> {
代码语言:txt
复制
   return this.http.get(url, { observe: 'response', responseType: 'blob' });
代码语言:txt
复制
 }

}

代码语言:txt
复制

在上面的代码中,getBinaryPdf方法使用HttpClientget方法发送HTTP GET请求,并设置responseTypeblob以接收二进制响应。observe参数设置为response以获取完整的HTTP响应对象。

  1. 在需要显示PDF的组件中,注入PdfService,并调用getBinaryPdf方法来获取二进制PDF响应。
代码语言:typescript
复制

import { Component } from '@angular/core';

import { PdfService } from './pdf.service';

@Component({

代码语言:txt
复制
 selector: 'app-pdf-viewer',
代码语言:txt
复制
 template: `
代码语言:txt
复制
   <iframe [src]="pdfUrl" width="100%" height="500"></iframe>
代码语言:txt
复制
 `,

})

export class PdfViewerComponent {

代码语言:txt
复制
 pdfUrl: any;
代码语言:txt
复制
 constructor(private pdfService: PdfService) {}
代码语言:txt
复制
 ngOnInit() {
代码语言:txt
复制
   const url = 'http://example.com/path/to/pdf'; // 替换为实际的PDF文件URL
代码语言:txt
复制
   this.pdfService.getBinaryPdf(url).subscribe((response) => {
代码语言:txt
复制
     const blob = new Blob([response.body], { type: 'application/pdf' });
代码语言:txt
复制
     this.pdfUrl = URL.createObjectURL(blob);
代码语言:txt
复制
   });
代码语言:txt
复制
 }

}

代码语言:txt
复制

在上面的代码中,PdfViewerComponent组件使用PdfService来获取二进制PDF响应,并将其转换为Blob对象。然后,使用URL.createObjectURL方法将Blob对象转换为可用于显示的URL,并将其赋值给pdfUrl变量。

  1. 在Ionic 2中,可以使用Ionic CLI来构建和运行应用程序。确保已经安装了Ionic CLI,并使用以下命令创建一个新的Ionic 2应用程序:
代码语言:txt
复制

ionic start myApp blank --type=angular

代码语言:txt
复制
  1. 将上述代码中的PdfService和PdfViewerComponent文件分别放置在适当的位置(例如,src/app目录下)。
  2. 在app.module.ts文件中,将PdfService添加到providers数组中,以便在整个应用程序中可以使用该服务。
代码语言:typescript
复制

import { NgModule } from '@angular/core';

import { BrowserModule } from '@angular/platform-browser';

import { HttpClientModule } from '@angular/common/http';

import { PdfService } from './pdf.service';

import { PdfViewerComponent } from './pdf-viewer.component';

@NgModule({

代码语言:txt
复制
 imports: [BrowserModule, HttpClientModule],
代码语言:txt
复制
 declarations: [PdfViewerComponent],
代码语言:txt
复制
 providers: [PdfService],
代码语言:txt
复制
 bootstrap: [PdfViewerComponent],

})

export class AppModule {}

代码语言:txt
复制
  1. 最后,在终端中使用以下命令启动Ionic 2应用程序:
代码语言:txt
复制

ionic serve

代码语言:txt
复制

这将在浏览器中启动应用程序,并显示PDF文件。

请注意,以上代码示例中的URL和文件路径仅用于演示目的。在实际应用中,需要替换为实际的PDF文件URL或本地文件路径。

推荐的腾讯云相关产品:腾讯云对象存储(COS),用于存储和管理PDF文件。您可以在腾讯云官网上找到有关腾讯云对象存储的更多信息和产品介绍。

腾讯云对象存储(COS)产品介绍链接地址:https://cloud.tencent.com/product/cos

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Angualr2 之 angular模块Angular 模块化提供服务特性模块 - 业务上最佳实践(n)共享模块XxxModule.forRoot配置核心服务知识点

    @NgModule接收一个元数据对象,该对象告诉 Angular 如何编译和运行模块代码。 它标记出该模块拥有的组件、指令和管道, 并把它们一部分公开出去,以便外部组件使用它们。...它可以向应用依赖注入器中添加服务提供商。 Angular 模块化 模块是组织应用程序和使用使用外部程序库最佳途径。 很多Angular库都是模块,e.g.... Angular模块是由一个@NgModule装饰器提供元数据类,元数据包括: 1-导入其他模块 2-声明哪些组件、指令、管道属于该模块 3-公开某些类,以便其他组件模块可以使用它们...特性模块可以对其他模块暴露或隐藏自己实现。 特性模块用来提供了内聚功能集合。 聚焦于应用某个业务领域、用户工作流、某个基础设施(表单、HTTP、路由),或一组相关工具集合。...XxxModule.forRoot配置核心服务 模块静态方法forRoot可以同时提供配置服务。 它接收一个服务配置对象,返回一个ModuleWithProviders。

    2.2K30

    【Hybrid开发高级系列】AngularJS(二)——常用$服务

    transformResponse: 函数或者函数数组,用来对http响应响应体和头信息进行转换,返回转换后结果。     ...请求响应对象 $http请求响应对象         angular传递给then方法响应对象包括以下几个属性     data: 转换之后响应体     status: http响应状态码...通过实现 response 方法拦截响应:         该方法会在 http 接收到从后台过来响应之后执行,因此你可以修改响应或做其他操作。...该方法接收响应对象(response object)作为参数,然后必须返回响应对象或者 promise。...我们可以利用路由服务定义这样一种东西:对于浏览器所指向特定URL,Angular将会加载显示一个模板,实例化一个控制器来为模板提供内容。

    40540

    Android 渗透测试学习手册 第四章 对 Android 设备进行流量分析

    如果我们需要,我们还可以下载tcpdump原始二进制文件交叉编译(为 Android 交叉编译你二进制文件,请按照链接http://machi021.blogspot.jp/2011/03/compile-busybox-for-android.html...因此,我们将它推送到一个位置,我们可以从中更改权限,以及执行二进制来捕获流量。 现在,继续使用adbpush命令推送二进制来将二进制推送到设备。...二进制推送到设备,然后需要使用adb在 shell 中访问设备,更改二进制权限。...此后,根据文件起始值(如 PDF 情况下为%PDF),从以下选项中选择Raw,然后使用扩展名.pdf保存文件。...此外,我们会继续拦截来自应用程序和浏览器 HTTP 和 HTTPS 流量数据。 我们还看到如何从网络捕获信息中提取敏感文件。

    95230

    程序猿今日头条面试历险记(一)

    当浏览器接收到可以被 angular context 处理事件时,$digest 循环就会触发。$digest 会遍历所有的 $watch。从而更新DOM。...查找依赖项所对应对象 用一个对象保存对象或函数列表 执行时注入 通过 fn.apply 方法把执行上下文,和依赖列表传入函数执行 HTTP1、HTTP2 以及 HTTPs 区别 HTTP2...使用二进制传送,HTTP1.X 是文本(字符串)传送。...HTTP1.X 使用是明文文本传送,而 HTTP2 使用二进制传送,二进制传送单位是帧和流。...激活:Service Worker 对它作用域内所有页面进行控制,fetch 用于拦截用户请求响应,返回 Promise 对象,成功安装 Service Worker 后,当用户下次再进入页面,返回已返回文件

    1.1K30

    HTTP】843- 揭秘 HTTP2

    但一个问题是这时 tcp 连接同一时刻只能处理一个 http 请求,即请求时序为“请求1->响应1->请求2->响应2...”,如果请求1没完成,后续请求2只能等待。...图片来源于网络 让我们来看看http2是如何做到! 1.多路复用 http2把原来http所传输信息划分为多个粒度更小帧,对其进行二进制编码,然后将其映射到属于特定流消息。...图片来源于《High Performance Browser Networking》 多路复用依赖一个关键技术点,那就是二进制分帧: 二进制分帧层 二进制分帧层指示如何在客户端和服务器之间封装和传输http...“优先级树”,该树表明其希望如何接收响应,即我们期望优先级越高请求越快得到响应,服务端使用此信息确定流处理优先级,控制cpu、内存和其他资源分配。...而服务端推送可以让服务器除了响应原始请求以外,还可以把其他资源推送到服务端,客户端不必请求每个资源,减少了浏览器接收响应解析html时间。推送资源必须遵循同源策略。如下图所示: ?

    1.5K30

    【官宣】WijmoJS 2018 v3 正式发布,全面支持Angular7

    WijmoJS(前端开发工具包)2018年度第三个大版本已经正式发布,本次更新除了全面支持Angular7之外,还允许用户使用Web Workers在前端更高效地导出PDF、智能分组表头属性、全新Ribbon...本次主要更新特性有: WijmoJS 全面支持Angular7 更高效纯前端 PDF 导出功能 智能分组表头属性 轻松创建 Ribbon 主题示例 OLAP 数据切片器及其功能增强 葡萄城免费公开课预告...WijmoJS使用Web Workers在单独线程上导出PDF文件,最大程度保证应用程序正常运行,支持“后台”导出操作。...轻松创建 Ribbon 主题示例 WijmoJS 添加了一个全新功能区主题示例,显示如何使用 TabPanel 控件和 WijmoJS 输入模块中控件轻松创建Ribbons。...这项改进使您可以更容易地查看经过PivotGrid过滤和数据透视图控件中显示内容。

    1.7K20

    AngularDart 4.0 高级-HTTP 客户端 顶

    /angular.dart'; import 'package:http/browser_client.dart'; import 'package:http/http.dart'; import 'package...= null">{{errorMessage}} 模板ngFor指令显示heroes列表.列表下面是输入框和Add Hero按钮,允许用户添加新英雄....并非所有的服务器都返回一个带有数据属性对象 不要返回响应对象 尽管getHeroes()有可能返回HTTP响应,但这不是一个好习惯。 数据服务重点在于隐藏消费者服务器交互细节。...处理错误一种方法是将错误消息传回组件,以便呈现给用户,但前提是该消息是用户可以理解采取行动内容。...发送数据到服务器 已经知道了如何使用远程HTTP服务恢复数据.下一项任务是添加增加英雄保存到后端能力. 首先, 服务需要一个组件能够调用来创建和保存一个英雄方法.

    9.7K10

    Hoppscotch:开源 API 开发工具,快捷实用 | 开源日报 No.77

    picture hoppscotch/hoppscotch[1] Stars: 56.1k License: MIT picture Hoppscotch 是一个开源 API 开发生态系统,主要功能包括发送请求和获取实时响应...该项目具有以下核心优势: 轻量级:采用简约 UI 设计。 快速:实时发送请求获得响应。 支持多种 HTTP 方法,如 GET、POST、PUT 等。...包括 WebSocket 通信、Server-Sent Events 接收服务器更新流数据、Socket.IO 与 SocketIO 服务器进行数据交互以及 MQTT 订阅发布消息到 MQTT 代理服务等功能...@angular/material:为 Angular 应用提供 Material Design 风格 UI 组件。...以下是该项目的核心优势和关键特点: 可通过预构建二进制文件或自己构建来安装 提供 CLI 工具、Python 绑定和 Node.js 绑定 支持多个操作系统平台 (Linux、Apple OSes 和

    40810

    关于Http协议,你必须要知道

    服务器处理完客户请求,收到客户应答后,即断开连接。采用这种方式可以节省传输时间。 4.无状态:HTTP协议是无状态HTTP 协议自身不对请求和响应之间通信状态进行保存。...三、HTTP请求方法 GET 请求指定页面信息,返回实体主体。...另外, 减少开销那部分时间,使 HTTP 请求和响应能够更早地结束,这样 Web 页面的显示速度也就相应提高了。...从前发送请求后需等待收到响应,才能 发送下一个请求。管线化技术出现后,不用等待响应亦可直接发送下一个请求。 这样就能够做到同时并行发送多个请求,而不需要一个接一个地等待响应了。...于是在使用持久连接情况下,某个连接上消息传递类似于 请求1->响应1->请求2->响应2->请求3->响应3 管线化方式发送变成了类似这样: 请求1->请求2->请求3->响应1->响应2->响应3

    68220

    Angular面试题_session面试题

    2.不利于 SEO 因为所有内容都是动态获取渲染生成,搜索引擎没法爬取。...一种解决办法是,对于正常用户访问,服务器响应 AngularJS 应用内容;对于 搜索引擎访问,则响应专门针对 SEO HTML页面。...参考 如何看2015年1月Peter-Paul Koch对Angular看法? 如何看待 angular 1.2 中引入 controller as 语法?...性能力(性能和能力) 编译时候,compile转换dom,碰到绑定监听器地方就先存着,有几个存几个,到最后汇总成一个link函数,一执行,提升了性能。...二十二、. apply()和 digest()区别 安全性:apply()可以接收一个参数作为function(),这个 function 会被包装到一个 try … catch 块中,所以一旦有异常发生

    4.9K150

    AngularDart 4.0 高级-生命周期钩子 顶

    ngOnInit 在Angular首次显示数据绑定属性设置指令/组件输入属性后,初始化指令/组件。 在第一次ngOnChanges之后调用一次。...OnChanges 看看每次组件输入属性发生变化时,Angular如何用变更对象调用ngOnChanges钩子。 显示如何解释更改对象。...peek-a-boo存在以显示Angular如何按预期顺序调用钩子。 此快照反映用户单击“创建...”按钮然后单击“销毁...”按钮后日志状态。 ?...ngOnInit是组件获取其初始数据好地方。 教程和HTTP章节显示如何。 还要记住,指令数据绑定输入属性在构建之后才会设置。 如果您需要根据这些属性初始化指令,那么这是一个问题。...,捕获比较其当前状态与以前值。

    6.2K10

    再谈angularJS数据绑定机制及背后原理—angularJS常见问题总结

    两者区别在于页面没有加载完毕 {{val}} 会直接显示到页面,直到 Angular 渲染该绑定数据(这种行为有可能将 {{val}} 让用户看到);而 ng-bind 则是在 Angular 渲染完毕后将数据显示...双向数据绑定原理? Angular 在 scope 模型上设置了一个 监听队列,用来监听数据变化更新 view 。    ...当浏览器接收到可以被 angular context 处理事件时,$digest 循环就会触发,遍历所有的 $watch,最后更新 dom。...脏检查如何被触发? angular 会在可能触发 UI 变更时候进行脏检查:这句话并不准确。...DOM事件,如用户输入文本,点击按钮等,(ng-click) XHQ响应事件($http) 浏览器Location变更事件,即Url中hash部分变更($location) Timer事件($Timeout

    7.8K40

    历年 CVPR 最佳论文盘点(2000 年——2018 年)

    接收论文列表: http://cvpr2019.thecvf.com/files/cvpr_2019_final_accept_list.txt 正当学界纷纷议论各家获接收论文多寡的当儿,雷锋网 AI...与 KinectFusion 一样,该系统可以生成越来越多去噪、保留细节、结合多种测量完整重建结果,实时显示最新模型。...作者利用局部敏感散列这点,将卷积中点积内核运算符替换为固定数量散列探测器,这些探测器可以在无视滤波器组大小情况下,及时、有效地对所有滤波器响应进行采样。...该系统能在消费类硬件上以每秒 200 帧速度运行。评估系统在合成与实际测试集处理结果中显示了高精度,分析了几个训练参数对此影响。...核心内容:大部分有效物体识别系统都依赖于二进制分类,不过这种方法只能确认物体是否存在,而无法提供物体实际位置。

    1.1K21
    领券