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.引 ...
随机推荐
- 2018-2019-2 20165305《网络攻防技术》Exp5 MSF基础应用
1. 实践内容 本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路.具体需要完成: 1.1一个主动攻击实践,如ms08_067; (1分) 1.2 一个针对浏览器的攻击, ...
- 实际用到的linux小方法
2019.4.261.解决ssh端中文乱码 (1).查看系统(window)的字符集,在命令行界面顶端空白处,右键->属性->选项 底端查看即可. (2).ssh上查看系统支持的字符集 ...
- quartz相关记录
1.http://www.quartz-scheduler.org/api/2.3.1-SNAPSHOT/ api地址 2.https://www.jianshu.com/p/3c3e166a7da1 ...
- Gitlab定义安全变量遇到无法转义的字符——感叹号
我在安全变量(Secret variables)中定义了一个变量,变量值中含有特殊字符感叹号 ! . 然后我在批处理中,引用了该变量,惊奇地发现,变量值中的 ! 丢失了. 我以为是Windows CM ...
- Python中的7种可调用对象
Python中有七种可调用对象,可调用对象可使用内置函数callable来检测 一.用户自定义的函数: 使用def语句或者lambda表达式创建的函数. 二.内置函数: 使用C语言实现的函数,如len ...
- 练手——用Python写的时间戳转换为北京时间的小工具
#北京时间需加上8小时bj = 8*3600 def time_stamp(times): #一天总秒数 nonDaySeconds = 24*3600 leapmonths = [ ...
- psql 存储过程
--添加人员和虹膜注册信息 CREATE OR REPLACE FUNCTION AddPersonInfoAndIrisEnrollInfo(personName character, workSn ...
- 谷歌浏览器导出excel失败问题解决(网上都没解决)
java poi导出excel报了网络错误,信息已经写回到chrome浏览器(IE/FF均无此问题).如下所示: 从chrome的network大小部分也可以看出是正确的. 网上很多答案说将file. ...
- [C++ Primer Plus] 第8章、函数探幽(一)程序清单——内联、引用、格式化输入输出、模板、decltype
程序清单8.1(inline内联函数) #include<iostream> using namespace std; inline double square(double x) {// ...
- StreamReader 和 StreamWriter 简单调用
/* ######### ############ ############# ## ########### ### ###### ##### ### ####### #### ### ####### ...