angular6 http.service.ts
import { Injectable, isDevMode } from '@angular/core';
import { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http';
import { environment } from '../../environments/environment';
import { Observable } from 'rxjs'; @Injectable()
export class HttpService {
requestURL = environment.ApiBase;
token = sessionStorage.getItem('adal.access.token.key');
httpOptions: any = {
headers: new HttpHeaders({
'Content-Type': 'application/json;charset=utf-8',
'Authorization': 'Bearer ' + this.token
})
};
constructor(
private http: HttpClient
) { } private urlFactory(resourceKey: string): string {
return `${this.requestURL}${resourceKey}`;
} private paramsFactory(params: any): HttpParams {
let para = new HttpParams();
Object.keys(params).forEach( key => para = para.append(key, params[key]));
return para;
} get(resourceKey: string, parameters: any): Observable<any> {
const url = this.urlFactory(resourceKey);
const params = this.paramsFactory(parameters);
return this.http.get( url, { headers: this.httpOptions.headers, params: params });
} post(resourceKey: string, body: any): Observable<any> {
const url = this.urlFactory(resourceKey);
return this.http.post(url, body, {headers: this.httpOptions.headers});
} put(resourceKey: string, body: any): Observable<any> {
const url = this.urlFactory(resourceKey);
return this.http.put(url, body, {headers: this.httpOptions.headers});
} delete( resourceKey: string, parameters: any): Observable<any> {
const url = this.urlFactory(resourceKey);
const params = this.paramsFactory(parameters);
return this.http.delete(url, { headers: this.httpOptions.headers, params: params });
}
}
调用部分:
import { Injectable, Type } from '@angular/core';
import { HttpService } from './http.service'; @Injectable()
export class CmapActionsService { constructor(private http: HttpService) { } public getDropDownList() {
return this.http.get('DropDown', {});
} public getActionById(id: number, eid: string) {
return this.http.get('ActionItem/getactionitembyid', { id: id, eid: eid });
} public addAction(action: any) {
return this.http.post('ActionItem', action);
} public removeAction(actionID: number) {
return this.http.delete('ActionItem', { actionID: actionID });
} }
angular6 http.service.ts的更多相关文章
- .Net Core+Angular6 学习 第三部分(从api获取data)
. 现在开始需要集成angular6到VS项目中 1.1 打开Startup.cs文件, 在ConfigureServices方法中配置angular files的目录. 1.2 在Configure ...
- angular6新建项目
mkdir angular6project cd angular6project ng new demo 新建一个普通项目 ng new demo --routing 新建一个带路由的项 ...
- Angular6 学习笔记——路由详解
angular6.x系列的学习笔记记录,仍在不断完善中,学习地址: https://www.angular.cn/guide/template-syntax http://www.ngfans.net ...
- Angular2 Service实践——实现简单音乐播放服务
引言: 如果说组件系统(Component)是ng2应用的躯体,那把服务(Service)认为是流通于组件之间并为其带来生机的血液再合适不过了.组件间通信的其中一种优等选择就是使用服务,在ng1里就有 ...
- Angular2 Service实践
引言: 如果说组件系统(Component)是ng2应用的躯体,那把服务(Service)认为是流通于组件之间并为其带来生机的血液再合适不过了.组件间通信的其中一种优等选择就是使用服务,在ng1里就有 ...
- Angular 非父子组件间的service数据通信
完成思路:以service.ts(主题subject---订阅sbuscribe模式)为数据中转中间件,通过sku.ts的数据更改监测机制,同步更改service.ts中的数据,同时buy.ts组件实 ...
- Ionic3 新增 Service
service是单例模式的 新增Service类 search.service.ts import {Injectable} from '@angular/core'; @Injectable() e ...
- 一些angular/js/ts的坑和吐槽
------20190318 ------------- 回头看,很多槽点已经随着升级改掉了 绑定string字面值到子组件@Input <app-overlay-static [name] ...
- 【CuteJavaScript】Angular6入门项目(3.编写服务和引入RxJS)
本文目录 一.项目起步 二.编写路由组件 三.编写页面组件 1.编写单一组件 2.模拟数据 3.编写主从组件 四.编写服务 1.为什么需要服务 2.编写服务 五.引入RxJS 1.关于RxJS 2.引 ...
随机推荐
- Angular4 组件生命周期
- Task3
姓名:蔡典 学号:1425052044 班级:信管142 兴趣爱好:电影,美剧,游戏 个人编程能力:较弱,没自己写过代码 码云账号:18809188@qq.com 直接搜索码云然后进入官网输入基本信息 ...
- 【kafka学习之一】 kafka初识
环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4一.kafka是什么? (1)kafka是一个高吞吐的分部式消息系统.( ...
- php配置可被设定范围
PHP中的每个指令都有其所属的模式,这些模式决定这一个PHP指定在何时何地.是否能被设定.例如有些指令可以在 PHP 脚本中用 ini_set() 来设定,而有些则只能在php.ini 或 httpd ...
- Jmeter之Redis读写
Jmeter之Redis读写 奔跑的小小鱼 关注 0.2 2019.03.21 18:25* 字数 1330 阅读 45评论 0喜欢 1 Jmeter插件访问Redis共有3种方式: 1)通过自已 ...
- PHP的openssl加密
PHP的openssl扩展 openssl扩展使用openssl加密扩展包,封装了多个用于加密解密相关的PHP函数,极大地方便了对数据的加密解密. 常用的函数有: 对称加密相关: string ope ...
- nodejs笔记之事件循环
Event Loop (事件循环或者事件轮询) Event Loop是一个程序结构,用于等待和发送消息和事件. 简单说,就是在程序中设置两个线程:一个负责程序本身的运行,称为"主线程&q ...
- mySQL简单操作(三)
1.事务 (1)ACID 原子性(不可分割性)automicity 一致性 consistency 隔离性 isolation 持久性 durability (2)事务控制语句 begin/start ...
- 安卓入门——————简单记账本的开发(二)-点击listview跳转并实现数据的更新
前言: 这个博客主要实现listview的跳转并实现对数据库内容的更新并显示到listview上,还没有实现listview的实时更新和listview具体线条的添加(接下来的几篇博客会实现),如 ...
- 使用ReentrantLock同步,经典银行账户问题
1.新建Account类,使用ReentrantLock同步增加和减少金额方法. package com.xkzhangsan.reentrantlockpack.bank; import java. ...