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.引 ...
随机推荐
- redis 分页
redis 分页 > rpush a (integer) > rpush a (integer) > rpush a (integer) > rpush a (integer) ...
- 用Java实现图片验证码功能
一.什么是图片验证码? 可以参考下面这张图: 我们在一些网站注册的时候,经常需要填写以上图片的信息. 1.图片生成实体类: package com.hexianwei.graphic; import ...
- Emote木马分析
前言:网上找的样本是EXE的,没有邮件样本,所以只做了exe分析. 一.Emote木马相关信息 文件: C:\Users\Desktop\Samp.exe 大小: 249856 bytes 文件版本: ...
- hdu5686大数斐波那契
Problem Description 度熊面前有一个全是由1构成的字符串,被称为全1序列.你可以合并任意相邻的两个1,从而形成一个新的序列.对于给定的一个全1序列,请计算根据以上方法,可以构成多 ...
- jdbc之工具类DBUtil的使用
首先回顾一下jdbc的使用方法: 1. 注册驱动 2. 建立连接 3. 建立statement 4. 定义sql语句 5. 执行sql语句,如果执行的是查询需遍历结果集 6. 关闭连接 其中建立连接和 ...
- 使用Jmeter连接MySql数据库
准备条件: 1.在MySql中创建数据库和表 2.MySql的驱动jra包 操作步骤: 1.将MySql的驱动jra包放入Jmetre本地文件夹的lib目录下 2.新建一个线程组,在线程组上 添加-配 ...
- jquery判断点击事件是否指定区域
$(document).click(function(e){ e = window.event || e; // 兼容IE7 obj = $(e.srcElement || e.target); ...
- Bigger-Mai 养成计划,subprocess模块
subprocess模块是python从2.4版本开始引入的模块.主要用来取代 一些旧的模块方法,如os.system.os.spawn*.os.popen*.commands.*等.subproce ...
- 8位、16位、32位单片机中的“XX位”指什么?
32位单片机的32位是指单片机的“字长”,也就是一次运算中参与运算的数据长度,这个位是指二进制位. 如果总线宽度与CPU一次处理的数据宽度相同,则这个宽度就是所说的单片机位数. 如果总线宽度与CPU一 ...
- credential for git
1, 编辑~/.gitconfig文件怎加如下配置 [credential] helper = store 2,执行 git pull.输入username, password. 3.检查~/.git ...