①使用ng g service services/storage创建一个服务组件

②在app.module.ts 中引入HttpClientModule模块

③在app.module.ts 中引入创建的服务

④在services/http.service.ts中封装一个简单的http请求

import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http'; @Injectable({
providedIn: 'root'
})
export class HttpService {
public hxApi = 'http://127.0.0.1:3000/';
constructor(public http: HttpClient) { }
get(api: any, obj: any): any {
return new Promise((resolve, reject) => { //使用Promise进行二次封装
this.http.get(this.hxApi + api, obj).subscribe({
next(res): any {
resolve(res);
},
error(err): any {
reject(err);
}
});
});
} post(api: any, obj: any): any {
const htttpOptions = {
headers: new HttpHeaders({ 'Content-type': 'application/json' })
}; //post请求需要设置此参数
return new Promise((resolve, reject) => {
this.http.post(this.hxApi + api, obj, htttpOptions).subscribe({
next(res): any {
resolve(res);
},
error(err): any {
reject(err);
}
});
});
}
}

⑤在组件中使用HttpService

import { Component } from '@angular/core';
import { HttpService } from './services/http.service'; @Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.less']
})
export class AppComponent {
title = 'angular-http';
constructor(public http: HttpService) { }
getData(): void {
this.http.get('users/xixi2', { params: { name: 'xixiGet' } }) //注意get请求和post请求的传参方式不一样
.then(res => {
console.log(res);
})
.catch(err => {
console.log(err);
});
}
postData(): void {
this.http.post('users/xixi', { name: 'xixiPost' })
.then(res => {
console.log(res);
})
.catch(err => {
console.log(err);
});
}
}
 

Angular:使用service进行http请求的简单封装的更多相关文章

  1. java 接口自动化测试之数据请求的简单封装

    我们自己用java写接口自动化测试框架或者做个接口自动化测试平台的话,是需要自己进行相关的请求的,因此我们需要简单的封装下httpclient,我新建了一个http工具类,将get方法和post方法进 ...

  2. 小程序 请求Promise简单封装

    最近做小程序在调用后台接口的时候感觉总写很长一串,很冗杂.非常想念vue中promise封装的写法,于是自己初步封装了一下. 1.url 接口地址 2.headers请求头 3. params 请求参 ...

  3. HttpClient 发送 HTTP、HTTPS 请求的简单封装

    import org.apache.commons.io.IOUtils; import org.apache.http.HttpEntity; import org.apache.http.Http ...

  4. 对ajax请求的简单封装,操作更方便

    我这里的接口数据调用的js叫interface.js,接口路径管理的js叫webSiteControl.js /** * Created by l2776 on 2017/7/11. * 接口数据调用 ...

  5. Angular和jQuery的ajax请求的差别

    近期项目中使用angular,结果发现后台没法获取參数,所以,略微研究了一下两者在发送ajax时的差别. 注意angular和jquery的ajax请求是不同的. 在jquery中,官方文档解释con ...

  6. python网页请求urllib2模块简单封装代码

    这篇文章主要分享一个python网页请求模块urllib2模块的简单封装代码. 原文转自:http://www.jbxue.com/article/16585.html 对python网页请求模块ur ...

  7. Web请求响应简单整理

      简单对Web请求响应如何处理进行的整理,难免有理解不到位,理解有偏差的地方,如有理解有误的地方,希望大牛批评指正. 1.Web开发的定义首先看看微软对Web开发的定义:Web开发是一个指代网页或网 ...

  8. Ajax与ashx异步请求的简单案例

    Ajax与ashx异步请求的简单案例: 前台页面(aspx): <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//E ...

  9. CORS跨域请求之简单请求与非简单请求

    先来看一个例子 定义server01的项目,在路由表中添加一条路由记录 url(r'^getData.html$',views.get_data) 对应的视图函数 from django.shortc ...

随机推荐

  1. API简介(二)

    API简介(二) API简介(一)一文中,介绍了使用API的目的.设计.发行政策以及公共API的含义,本篇主要介绍API的用法,从库和框架.操作系统.远程API.Web API四个方面展开. 库和框架 ...

  2. Kafka高性能揭秘:sequence IO、PageCache、SendFile的应用详解

    大家都知道Kafka是将数据存储于磁盘的,而磁盘读写性能往往很差,但Kafka官方测试其数据读写速率能达到600M/s,那么为什么Kafka性能会这么高呢? 首先producer往broker发送消息 ...

  3. Vue-router插件使用

    单页面原理 Vue是单页面开发,即页面不刷新. 页面不刷新,而又要根据用户选择完成内容的更新该怎么做?Vue中采用锚点来完成. 如访问http://127.0.0.1#/index就是主页,而访问ht ...

  4. bWAPP----Mail Header Injection (SMTP)

    Mail Header Injection (SMTP) 本地没有搭环境,没法演示,附上转载的 https://www.acunetix.com/blog/articles/email-header- ...

  5. linux 用户组操作

    1. 添加用户到...目录中useradd -M -s /目录 username 2. 添加用户属于多个组 usermod -G 本组(用户名),组1,组2... 用户名 3. mysql添加禁止登录 ...

  6. 「LOJ 539」「LibreOJ NOIP Round #1」旅游路线

    description 题面较长,这里给出题目链接 solution 考虑预处理出\(f[i][j]\)表示在第\(i\)个点加满油后,从第\(i\)个点出发,至多消耗\(j\)元钱走过的最大路程,那 ...

  7. css3系列之过渡transition

    transition 设置变换属性的过渡效果,举个例子,也就是说, 如果从width100px 变成 width200px,要以什么方式进行变换,速度,时间,类型等. transition trans ...

  8. php filesize不能统计临时文件

    文件上传时要统计上传的文件的大小,使用filesize('文件名')的时候,其中 的文件名就得是文件在本地的临时文件但是会出现一个错误显示成 filesize(): stat failed for D ...

  9. LaTeX文档的基本结构

    正文提纲的构建代码及注释: 显示效果: 目录结构与换行的代码及注释: 显示效果: 具体的有关的信息可以具体查看ctex文档,可以在导言区进行全局的设置,比如标题居中设置等.

  10. chrome浏览器查看当前页面cookie

    方法一:点进去设置--高级--网站设置--权限cookie--查找所有cookie和网站数据,就可以看到所有的cookie信息了,举例: 方法二:键盘F12,找到network--点击Doc(如果没有 ...